python matlab函数max(y(x>3)>2)到numpy的单行转换

h43kikqp  于 2023-01-04  发布在  Python
关注(0)|答案(2)|浏览(137)

我想转换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

非常感谢您提前提供的信息。

x4shl7ld

x4shl7ld1#

一般来说,(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)])
ao218c7q

ao218c7q2#

不是很短,而是一句话:

max([y[i] for i in range(len(y)) if x[i] > 3 and y[i]>2])

相关问题