NumPy で 2つの配列の組み合わせを取得する
-
Python の
itertools.product()
関数で NumPy 配列の組み合わせを取得する -
Python の
numpy.meshgrid()
関数で NumPy 配列の組み合わせを取得する -
Python の
for-in
メソッドで NumPy 配列の組み合わせを取得する
この記事では、Python で 2つの NumPy 配列のデカルト積を見つける方法を紹介します。
Python の itertools.product()
関数で NumPy 配列の組み合わせを取得する
itertools
パッケージは、組み合わせと順列に関連する多くの機能を提供します。2つの反復可能な itertools.product()
関数デカルト積を使用できます。itertools.product()
関数は、入力パラメーターとして iterables を受け取り、iterables のデカルト積を返します。
import itertools as it
import numpy as np
array = np.array([1, 2, 3])
combinations = it.product(array, array)
for combination in combinations:
print(combination)
出力:
(1, 1)
(1, 2)
(1, 3)
(2, 1)
(2, 2)
(2, 3)
(3, 1)
(3, 2)
(3, 3)
上記のコードでは、itertools
パッケージ内の product()
関数を使用して、array
のデカルト外積を計算し、その結果を combinations
に格納しました。
Python の numpy.meshgrid()
関数で NumPy 配列の組み合わせを取得する
NumPy パッケージ内の meshgrid()
関数を使用して、2つの NumPy 配列のデカルト積を計算することもできます。numpy.meshgrid()
関数は、配列を入力引数として受け取り、2つの配列の外積を返します。
import numpy as np
array = np.array([1, 2, 3])
combinations = np.array(np.meshgrid(array, array)).T.reshape(-1, 2)
print(combinations)
出力:
[[1 1]
[1 2]
[1 3]
[2 1]
[2 2]
[2 3]
[3 1]
[3 2]
[3 3]]
上記のコードでは、NumPy の meshgrid()
関数を使用して、配列
とそれ自体のデカルト外積を計算しました。次に、この操作の結果を np.array()
関数を使用して配列に変換し、numpy.reshape()
関数を使用して再形成しました。次に、新しい再形成された結果を combinations
配列内に保存しました。
Python の for-in
メソッドで NumPy 配列の組み合わせを取得する
前の 2つの例と同じ目標を達成するためのもう 1つのより簡単な方法は、for-in
イテレータを使用することです。for-in
イテレータは、Python のイテレータ内の各要素を反復処理するために使用されます。このメソッドは、新しいパッケージやライブラリをインポートせずに使用できます。
import numpy as np
array = np.array([1, 2, 3])
array2 = np.array([1, 2, 3])
combinations = np.array([(i, j) for i in array for j in array2])
print(combinations)
出力:
[[1 1]
[1 2]
[1 3]
[2 1]
[2 2]
[2 3]
[3 1]
[3 2]
[3 3]]
上記のコードでネストされた for-in
イテレータを使用して、両方の配列のデカルト外積を計算しました。結果は、np.array()
関数を使用して NumPy 配列 combinations
内に保存しました。
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