0

all、any、max min などの matlab 関数を numpy に変換したい。

これらの関数は複合式を入力として受け取るため、numpy で同じことを達成する方法を知りたいと思っていました。

例のために。max(y(x>3)>2)

x = [1,2,3,4,5,6]
y = [2,4,6,8,9,2]

matlabでは、答えは9でした

上記の max 関数を numpy で記述して、異なる式を受け入れるにはどうすればよいですか。

お気に入り

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 に答える