ホームページ >バックエンド開発 >Python チュートリアル >NumPy 配列: 形状 (R, 1) と (R,) の違いと行列の乗算への影響は何ですか?
NumPy では、形状 (R, 1) を持つ配列に遭遇することがあります。そして(R,)。これらの形状は似ているように見えますが、基礎となるデータの異なる解釈を表しています。
形状 (R, 1) の配列は、R 行と 1 列の 2D 配列です。これは本質的には列ベクトルであり、R 要素のリストと考えることができます。対照的に、形状 (R,) の配列は、R 個の要素を持つ 1D 配列です。これは実質的にリストであり、各要素がスカラー値を表します。
NumPy の設計上の選択は、(R, 1) を優先しないことです。 1) 行列乗算の形状は、その固有の柔軟性に由来します。両方の形状を許可すると、プログラマは特定のタスクに最も適切な表現を選択できるようになります。行列の乗算には (R, 1) 形状の方が便利ですが、ベクトルやスカラー値のリストを操作する場合など、他の状況では (R,) 形状の方が適している場合があります。
配列を明示的に再形成せずに、行列乗算を実行する別のアプローチがあります。たとえば、np.expand_dims() 関数を使用すると、目的の形状変換を実現できます。あるいは、NumPy が特定の条件下で自動的に実行するブロードキャストを利用することもできます。たとえば、式 numpy.dot(M[:,0], numpy.ones((1, R))) では、ブロードキャストにより numpy.ones((1, R)) が numpy.ones((R) に自動的に展開されます。 、1)).
以上がNumPy 配列: 形状 (R, 1) と (R,) の違いと行列の乗算への影響は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。