1. ホーム
  2. パイソン

[解決済み】1次元NumPy配列のトランスポーズ

2022-04-02 10:45:20

質問

PythonとNumPyを使っていますが、"transpose "で問題があります。

import numpy as np
a = np.array([5,4])
print(a)
print(a.T)

呼び出し a.T は配列の転置ではありません。 もし a というのは、例えば [[],[]] の転置が必要です。 [...,...,...] .

どのように解決するのか?

想定通りに動いています。の転置は 1D の配列は、やはり 1D の配列です! (matlabに慣れていると、基本的に1次元配列の概念がありません。Matlabのquot;1D"配列は2Dです).

1次元のベクトルを2次元の配列に変換して転置したい場合は、次のようにスライスします。 np.newaxis (または None は、同じです。 newaxis の方が読みやすいだけです)。

import numpy as np
a = np.array([5,4])[np.newaxis]
print(a)
print(a.T)

しかし、一般的には、このことを気にする必要はないでしょう。習慣的にやっているのであれば、余分な次元を追加することは通常必要ない。 Numpyは様々な計算をするときに、自動的に1次元の配列をブロードキャストします。通常、行ベクトルと列ベクトルを区別する必要はありません(どちらも ベクター . 単にベクトルが欲しいだけなら、どちらも2次元です!)。