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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-10 13:16:02841ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。