Zip NumPy Arrays

Muhammad Maisam Abbas 2023年1月30日
  1. list(zip()) 関数を使用した NumPy Zip
  2. numpy.stack() 関数を使用した NumPy Zip
  3. numpy.column_stack() 関数を使用した NumPy Zip
Zip NumPy Arrays

このチュートリアルでは、Python で 2つの 1DNumPy 配列を 1つの 2DNumPy 配列に圧縮する方法を紹介します。

list(zip()) 関数を使用した NumPy Zip

2つの 1D 配列があり、それらを 2D 配列内で一緒に圧縮したい場合は、Python で list(zip()) 関数を使用できます。このアプローチでは、リスト内で配列を一緒に圧縮します。list(zip(a,b)) 関数は、配列 ab を引数として取り、リストを返します。次に、numpy.array() 関数を使用して、zip 形式のリストを配列に変換できます。次のコード例を参照してください。

import numpy as np

a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])

c = np.array(list(zip(a, b)))

print(c)

出力:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

最初に、np.array() 関数を使用して 2つの 1D 配列 ab を作成し、np.array(list(zip(a,b))) 関数を使用してそれらを圧縮しました。

配列とリストの間で変換する必要があるため、このアプローチはあまり効率的ではありません。

numpy.stack() 関数を使用した NumPy Zip

numpy.stack() 関数を使用して、前の例と同じ目標を達成することもできます。このアプローチは、型変換が実行されないため、以前のアプローチよりも効率的です。numpy.stack() 関数は、指定された軸に従って 2つ以上の配列を結合するために使用されます。前の例と同様の結果を得るために、1 に等しい axis パラメーターを指定できます。次のコード例を参照してください。

import numpy as np

a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])

c = np.stack((a, b), axis=1)

print(c)

出力:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

最初に、np.array() 関数を使用して 2つの 1D 配列 ab を作成し、np.stack((a,b), axis=1) 関数を使用してそれらを圧縮しました。

numpy.column_stack() 関数を使用した NumPy Zip

numpy.column_stack() 関数は、Python で 2つの 1D 配列を 1つの 2D 配列に圧縮するために使用できるもう 1つのメソッドです。numpy.column_stack() 関数は、2つ以上の 1D 配列を列として単一の 2D 配列に結合するために使用されます。このアプローチでは、軸パラメータを指定する必要はありません。次のコード例を参照してください。

import numpy as np

a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])

d = np.column_stack((a, b))

print(d)

出力:

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

最初に、np.array() 関数を使用して 2つの 1D 配列 ab を作成し、np.column_stack(a,b) 関数を使用してそれらを圧縮しました。

このアプローチは、前の 2つの方法と比較して最適です。型変換がなく、このアプローチでは軸を指定する必要がないためです。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn