アレイ(3)シェイプを引くことができるnumpyの優れた放送規則を使用してv
形状からは、(5,3)の配列X
を有します
X - v
結果は、各行i
が差である形状(5,3)配列X[i] - v
です。
から形状(n、3)配列w
を減算して、ループを明示的に使用せずに配列全体からのX
各行をw
減算するX
方法はありますか?
X
withの次元を拡張しNone/np.newaxis
て3D配列を形成してから、による減算を行う必要がありますw
。これにより、broadcasting
この3D
操作が機能し、の形状の出力が得られ(5,n,3)
ます。実装は次のようになります-
X[:,None] - w # or X[:,np.newaxis] - w
代わりに、目的の順序が(n,5,3)
である場合は、w
代わりにの次元を拡張する必要があります。
X - w[:,None] # or X - w[:,np.newaxis]
サンプル実行-
In [39]: X
Out[39]:
array([[5, 5, 4],
[8, 1, 8],
[0, 1, 5],
[0, 3, 1],
[6, 2, 5]])
In [40]: w
Out[40]:
array([[8, 5, 1],
[7, 8, 6]])
In [41]: (X[:,None] - w).shape
Out[41]: (5, 2, 3)
In [42]: (X - w[:,None]).shape
Out[42]: (2, 5, 3)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加