NumPy 中的 numpy.random.permutation() 函式
本教程將介紹在 Python 中升級 NumPy 包的方法。
NumPy 隨機排列與 Python 中的 numpy.random.permutation()
函式
numpy.random.permutation()
函式主要用於兩個目的:獲取序列的隨機排列副本和在 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
進行混洗。
在第二個示例中,我們演示了傳遞整數時 permutation()
函式和 shuffle()
函式之間的區別。permutation(n)
函式返回一個帶有 n
個整數元素序列的混洗陣列,而要使用 shuffle()
函式模仿這種行為,我們必須首先建立一個 n
個整數序列,其中 np.arange()
函式。shuffle()
函式然後對這個新建立的整數元素序列進行打亂。
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