における複数のベクトルの要素ごとの最小私はnumpyの中で、私はnumpyの
numpy.minimum(v1, v2)
で2つのベクトルの要素ごとの最小値を計算することができることを知って、V = [v1, v2, v3, v4]
(リストではなく配列である) numpy.minimum(*V)
を入力しても機能しません。代わりにやりたいことは何ですか?
における複数のベクトルの要素ごとの最小私はnumpyの中で、私はnumpyの
numpy.minimum(v1, v2)
で2つのベクトルの要素ごとの最小値を計算することができることを知って、V = [v1, v2, v3, v4]
(リストではなく配列である) numpy.minimum(*V)
を入力しても機能しません。代わりにやりたいことは何ですか?
*V
V
に配列が2つしかない場合に機能します。 np.minimum
はufunc
で、2つの引数をとります。
ufunc
としては、.reduce
という方法がありますので、リスト入力に繰り返し適用できます。
In [321]: np.minimum.reduce([np.arange(3), np.arange(2,-1,-1), np.ones((3,))])
Out[321]: array([ 0., 1., 0.])
np.min
のアプローチは高速ですが、それは配列とリストのサイズによって異なる可能性があります。
In [323]: np.array([np.arange(3), np.arange(2,-1,-1), np.ones((3,))]).min(axis=0)
Out[323]: array([ 0., 1., 0.])
ufunc
も私たちに削減の各段階の結果を表示することができaccumulate
を持っています。興味深いのではありませんが、私はそれを変更するために入力を微調整することができます。
In [325]: np.minimum.accumulate([np.arange(3), np.arange(2,-1,-1), np.ones((3,))])
...:
Out[325]:
array([[ 0., 1., 2.],
[ 0., 1., 0.],
[ 0., 1., 0.]])
numpyの配列に変換し、第1の軸に沿ってndarray.min
を実行 -
np.asarray(V).min(0)
あるいは単にフード下としてnp.amin
を使用し、それはその軸に沿って最小値を見つける前に、アレイに入力を変換する -
np.amin(V,axis=0)
サンプル実行 -
In [52]: v1 = [2,5]
In [53]: v2 = [4,5]
In [54]: v3 = [4,4]
In [55]: v4 = [1,4]
In [56]: V = [v1, v2, v3, v4]
In [57]: np.asarray(V).min(0)
Out[57]: array([1, 4])
In [58]: np.amin(V,axis=0)
Out[58]: array([1, 4])
最終出力をリストとして出力する必要がある場合は、出力に.tolist()
を追加します。