NumPy 配列の転置: 1D 行列の動作のデコード
NumPy 配列を扱う場合、特に転置演算の動作を理解することが重要です。 1D配列の場合。 1D 配列を転置すると、一般的な期待に反して、別の 1D 配列が作成されます。
転置操作との混同
次の NumPy コードを考えてみましょう:
import numpy as np a = np.array([5,4]) print(a) print(a.T)
このシナリオでは、a.T を呼び出しても、予想されるように配列は転置されません。代わりに、配列を変更せずに返します。
1D 配列の転置動作
この動作の背後にある理由は、NumPy の 1D 配列の基本的な性質にあります。 MATLAB とは異なり、NumPy は 1D 配列と 2D 配列を区別しません。 NumPy の 1D 配列は本質的に次元 (1, n) の 2D 配列であり、n は配列の長さを表します。
したがって、1D 配列を転置すると、単純に 1 つの軸に沿って要素が並べ替えられ、結果として次元 (n, 1) の 2D 配列。この例では、配列はすでに (1, 2) 次元配列であり、軸の回転は 1D 配列のままであるため、転置操作は目に見える効果はありません。
Creating a 2D Array for転置
1D 配列を 2D 配列に転置することが望ましい場合は、次のように使用できます。 np.newaxis (または同等の None) を使用して追加の次元を作成します。
a = np.array([5,4])[np.newaxis] print(a) print(a.T)
np.newaxis で次元を追加すると、結果の配列は (1, 2) 次元配列になり、適切な転置が可能になります。 .
追加の洞察
ただし、ほとんどの実際的なシナリオでは、明示的な1D 配列の転置は不要です。 NumPy は、計算中に 1D 配列を高次元に自動的にブロードキャストし、行ベクトルと列ベクトルのどちらを操作しているのかをユーザーに透過的にします。
以上が1D NumPy 配列を転置しても形状が変わらないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。