NumPy で 1D 配列を転置する
配列と行列は、この Python ライブラリのコアを形成します。これらの配列と行列の転置は、機械学習などの一部の科目で重要な役割を果たします。NumPy では、配列または行列の転置を計算するのは簡単です。
NumPy で 1D 配列を転置する
NumPy で配列または行列を転置するには、転置された配列または行列を格納する T
属性を使用する必要があります。
T
属性は NumPy 配列専用、つまり ndarray
のみです。この属性は Python リストには無効です。
理論的には、1D 配列を転置することは可能ですが、技術的に、またはより正確には、プログラミング言語の観点から、1D 配列を転置することはできません。
この声明を誤解しないでください。1D 配列の転置は、Python やその他のプログラミング言語では少し異なるだけです。それはすべて、プログラミング言語で配列がどのように表現されるかに要約されます。
1D 配列は、単に行列の行です。この配列、技術的には行列を転置する必要がある場合は、この 1D 行列を 2D 行列に変換する必要があります。次に、指定された関数を使用して 2 次元行列を転置します。
より良い説明については、次のコードを参照してください。
import numpy as np
a = [1, 2, 3, 4, 5]
b = np.array(a)
c = np.array([a])
print(b)
print(c)
print(b.shape)
print(c.shape)
print(b.T)
print(c.T)
出力:
[1 2 3 4 5]
[[1 2 3 4 5]]
(5,)
(1, 5)
[1 2 3 4 5]
[[1]
[2]
[3]
[4]
[5]]
まず、np.array()
メソッドと Python リストを使用して、b
が 1D、c
が 2D の 2つの NumPy 配列を作成します。リストを 2D マトリックスに変換するには、[]
角かっこで囲みます。次に、NumPy 配列とそれぞれの形状を出力します。
ただし、最も重要な点は、1D 配列の転置は配列自体と同じですが、2D 配列の転置が完全に変更されていることです。そして、結果はかなり明白です。
転置されていない 2D 配列には、行列の行を表す 5つの要素を含む配列が含まれています。転置すると、2D 配列内に 5つの配列があり、転置された行列の 5つの行を表し、各行に 1つの要素があります。そして、それが転置の仕組みです!
一方、1D 配列の場合、Python の [1 2 3 4 5]
の転置配列は次のようになっているため、同じ配列が返されました [1 2 3 4 5]
。そして、この結果では、元の配列が 1D ではなく 2D である必要があります。