我想将matlab函数转换为all,any,max min为numpy。
因为这些函数将复合表达式作为输入,所以想知道如何在numpy中实现相同的效果。
代表。最大(Y(X→3)→2)
x = [1,2,3,4,5,6]
y = [2,4,6,8,9,2]
在matlab中我会得到答案为9
如何在numpy中编写上述max函数,以便它接受不同的表达式。
像
max(x>3) - ans 6
max((x>3)>5) - ans 6
max((x>3) & (x<6)) - ans 5
非常感谢您提前投入。
答案 0 :(得分:6)
一般来说(http://wiki.scipy.org/NumPy_for_Matlab_Users)是从MATLAB进行转换的非常好的指南 - &gt; numpy的
x = np.array(x)
np.max(x[x>3])
np.max(x[(x>3)*(x>5)])
np.max(x[(x>3)*(x<6)])
答案 1 :(得分:1)
不是那么短,而是单行:
max([y[i] for i in range(len(y)) if x[i] > 3 and y[i]>2])