ホームページ > バックエンド開発 > Python チュートリアル > 1D NumPy 配列を転置しても形状が変わらないのはなぜですか?

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

Mary-Kate Olsen
リリース: 2024-11-10 13:16:02
オリジナル
900 人が閲覧しました

Why Doesn't Transposing a 1D NumPy Array Change Its Shape?

1D NumPy 配列の転置: 驚くほど簡単な解決策

多くのプログラマは、1D NumPy 配列を転置しようとすると混乱に遭遇します。この問題を詳しく調べて、驚くほど簡単な解決策を明らかにしましょう。

NumPy では、.T で示される転置演算により、配列の次元が交換されます。ただし、配列が 1D の場合、その形状は転置後も同じままです。これは、結果として 2D 配列を期待している人にとっては不可解かもしれません。

例として、次のコードを考えてみましょう:

import numpy as np
a = np.array([5, 4])
print(a)
print(a.T)
ログイン後にコピー

出力は次のようになります:

[5 4]
[5 4]
ログイン後にコピー

ご覧のとおり、1D 配列 a を転置しても形状は変化しません。これは、1D 配列の転置が依然として 1D 配列であるためです。

解決策は、転置する前に 1D 配列を 2D 配列に変換することです。これは、基本的に新しい軸を配列に挿入する np.newaxis 関数を使用して実現できます。

a = np.array([5, 4])[np.newaxis]
print(a)
print(a.T)
ログイン後にコピー

出力は次のようになります。

[[5 4]]
[[5]
 [4]]
ログイン後にコピー

1D 配列 a は次のようになります。 2D 配列に正常に変換され、転置すると望ましい結果が得られます。

ほとんどの場合、次のことに注意することが重要です。転置のために 1D 配列を 2D 配列に手動で変換する必要はありません。 NumPy はさまざまな操作を実行するときに 1D 配列を自動的にブロードキャストするため、次元を気にする必要がなくなります。

以上が1D NumPy 配列を転置しても形状が変わらないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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