NumPy の numpy.random.permutation()関数

Muhammad Maisam Abbas 2022年1月23日
NumPy の numpy.random.permutation()関数

このチュートリアルでは、Python で NumPy パッケージをアップグレードする方法を紹介します。

Python の numpy.random.permutation() 関数を使用した NumPy ランダム置換

numpy.random.permutation() 関数は、主に 2つの目的で使用されます。シーケンスのランダムに並べ替えられたコピーを取得することと、Python でランダムに並べ替えられた範囲を取得することです。permutation() 関数と shuffle() 関数の主な違いは、配列が渡されると、permutation() 関数が元の配列のシャッフルされたコピーを返すことです。対照的に、shuffle() 関数は元の配列をシャッフルします。また、整数を渡すと、permutation() 関数は指定された長さのランダムに並べ替えられた数値のシーケンスを提供しますが、同じプロセスを実行するには、numpy.arange() 関数を shuffle() 関数で使用する必要があります。次のコード例は、Python の permutation() 関数と shuffle() 関数の違いを示しています。

例 1:

import numpy as np
array = np.array([0,1,0,0,4])
shuffled = np.random.permutation(array)
np.random.shuffle(array)
print(shuffled)
print(array)

出力:

[0 0 4 1 0]
[0 4 0 1 0]

例 2:

permuted = np.random.permutation(5)
print(permuted)
sequence = np.arange(5)
np.random.shuffle(sequence)
print(sequence)

出力:

[3 1 4 0 2]
[4 3 0 1 2]

最初の例では、配列が両方の関数に渡されるときの permutation() 関数と shuffle() 関数の違いを示しました。permutation() 関数は array のシャッフルされたコピーを返し、shuffle() 関数は元の array をシャッフルします。

2 番目の例では、整数が渡されたときの permutation() 関数と shuffle() 関数の違いを示しました。permutation(n) 関数は、n 整数要素のシーケンスを持つシャッフルされた配列を返しますが、shuffle() 関数でこの動作を模倣するには、最初に n 整数のシーケンスを作成する必要があります。np.arange() 関数。次に、shuffle() 関数は、この新しく作成された整数要素のシーケンスをシャッフルします。

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