1D NumPy 配列を転置しても形状が変わらないのはなぜですか?

Susan Sarandon
リリース: 2024-11-11 12:14:03
オリジナル
903 人が閲覧しました

Why Does Transposing a 1D NumPy Array Not Change Its Shape?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート