Python 如何在单行中将matlab函数max(y(x>;3)>;2)转换为numpy

Python 如何在单行中将matlab函数max(y(x>;3)>;2)转换为numpy,python,matlab,numpy,Python,Matlab,Numpy,我想把matlab函数像all,any,max-min转换成numpy 由于这些函数将复合表达式作为输入,所以我想知道如何在numpy中实现同样的功能 例如最大值(y(x>3)>2) 在matlab中,我得到的答案是9 如何用numpy编写上面的max函数,以便它接受不同的表达式 像 max(x>3)-ans 6 最大值((x>3)>5)-ans 6 max((x>3)和(x不是很短,而是一条直线: max([y[i] for i in range(len(y)) if x[i] > 3

我想把matlab函数像all,any,max-min转换成numpy

由于这些函数将复合表达式作为输入,所以我想知道如何在numpy中实现同样的功能

例如最大值(y(x>3)>2)

在matlab中,我得到的答案是9

如何用numpy编写上面的max函数,以便它接受不同的表达式

max(x>3)-ans 6
最大值((x>3)>5)-ans 6

max((x>3)和(x不是很短,而是一条直线:

max([y[i] for i in range(len(y)) if x[i] > 3 and y[i]>2])
总的来说()是从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)])
x=np.array(x)
np.max(x[x>3])
np.最大值(x[(x>3)*(x>5)])

np.max(x[(x>3)*(x您在任何示例中都不使用
y
。您的示例是错误的。在Matlab中
max(x>3)
将返回
1
true
。所有示例都是如此……感谢您的快速回复:)。这是更好的答案:它按照要求使用numpy,速度大约快50倍。顺便说一句,原始公式将是
y[(x>3)和(y>2)].max()
np.max(y[(x>3)和(y>2)]
max([y[i] for i in range(len(y)) if x[i] > 3 and y[i]>2])
x = np.array(x)
np.max(x[x>3])
np.max(x[(x>3)*(x>5)])
np.max(x[(x>3)*(x<6)])