NumPy は 2つの配列をシャッフルする
-
Python の
sklearn.utils.shuffle()
関数を使用して 2つの配列をシャッフルする NumPy -
NumPy は
numpy.random.shuffle()
関数を使用して 2つの配列をシャッフルする -
NumPy は、Python の
numpy.random.permutation()
関数を使用して、対応する 2つの配列をシャッフルする
このチュートリアルでは、Python で 2つの NumPy 配列をシャッフルする方法を紹介します。
Python の sklearn.utils.shuffle()
関数を使用して 2つの配列をシャッフルする NumPy
同じ長さまたは同じ先行次元の 2つの配列があり、両方の配列の対応する要素が対応したままになるように、両方をシャッフルしたいとします。その場合、Python の sklean.utils
ライブラリ内で shuffle()
関数を使用できます。この shuffle()
関数は、配列を入力パラメーターとして受け取り、それらを一貫してシャッフルし、各配列のシャッフルされたコピーを返します。次のコード例を参照してください。
import numpy as np
from sklearn import utils
array1 = np.array([[0, 0], [1, 1], [2, 2]])
array2 = np.array([0, 1, 2])
array1, array2 = utils.shuffle(array1, array2)
print(array1)
print(array2)
出力:
[[0 0]
[2 2]
[1 1]]
[0 2 1]
上記のコードでは、Python の sklearn.utils
ライブラリ内の shuffle()
関数を使用して、array1
と array2
の 2つの配列をシャッフルしました。最初に、np.array()
関数を使用して両方の配列を作成しました。次に、sklearn.utils
ライブラリ内の shuffle()
関数を使用して配列をシャッフルし、シャッフルされた配列を array1
と array2
内に保存しました。最後に、両方の配列内の要素を出力しました。出力は、シャッフルした後でも、両方の配列の要素が対応していることを示しています。
NumPy は numpy.random.shuffle()
関数を使用して 2つの配列をシャッフルする
sklearn
パッケージをインポートせず、NumPy パッケージを使用して前の目標と同じ目標を達成したい場合は、numpy.random
ライブラリ内の shuffle()
関数を使用できます。この shuffle()
関数はシーケンスを受け取り、それをランダム化します。次に、このランダム化されたシーケンスを 2つの配列のインデックスとして使用して、それらをシャッフルできます。次のコード例は、numpy.random.shuffle()
関数を使用して 2つの配列をシャッフルする方法を示しています。
import numpy as np
array1 = np.array([[0, 0], [1, 1], [2, 2]])
array2 = np.array([0, 1, 2])
randomize = np.arange(len(array2))
np.random.shuffle(randomize)
array1 = array1[randomize]
array2 = array2[randomize]
print(array1)
print(array2)
出力:
[[2 2]
[0 0]
[1 1]]
[2 0 1]
最初に、np.array()
関数を使用して配列を作成しました。次に、np.arange(len(array2))
関数を使用して、2 番目の配列の長さに等しい整数のシーケンスを作成しました。その後、np.random
ライブラリ内の shuffle()
関数を使用してシーケンスをランダム化し、両方の配列がそれらをシャッフルするためのインデックスとして使用しました。
NumPy は、Python の numpy.random.permutation()
関数を使用して、対応する 2つの配列をシャッフルする
numpy.random
ライブラリ内の permutation()
関数を使用して、Python で指定された範囲内の整数のランダム化されたシーケンスを作成することもできます。このシーケンスは、両方の配列のインデックスとして使用して、それらをシャッフルできます。
import numpy as np
def shuffle(x, y):
p = np.random.permutation(len(y))
return x[p], y[p]
array1 = np.array([[0, 0], [1, 1], [2, 2]])
array2 = np.array([0, 1, 2])
array1, array2 = shuffle(array1, array2)
print(array1)
print(array2)
出力:
[[0 0]
[2 2]
[1 1]]
[0 2 1]
上記のコードでは、2つの配列を受け取り、Python の numpy.random
ライブラリ内の permutation()
関数を使用してそれらをランダム化する関数 shuffle()
を定義しました。ランダム化されたシーケンスの長さは、len(y)
関数を使用して 2 番目の配列の要素数と等しくなるように指定しました。次に、ランダム化されたシーケンス p
を両方の配列のインデックスとして使用し、それらを返しました。shuffle()
関数によって返されるシャッフルされた配列は、array1
および array2
配列内に格納されます。
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