0

我想将所有,任何,最大最小值等matlab函数转换为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

非常感谢您提前输入。

4

2 回答 2

6

一般来说(http://wiki.scipy.org/NumPy_for_Matlab_Users)是一个非常好的从 MATLAB -> numpy 进行转换的指南

x = np.array(x)
np.max(x[x>3])
np.max(x[(x>3)*(x>5)])
np.max(x[(x>3)*(x<6)])
于 2013-10-17T01:57:54.913 回答
1

不是那么短,而是一条线:

max([y[i] for i in range(len(y)) if x[i] > 3 and y[i]>2])
于 2013-10-17T01:49:04.300 回答