NumPy 中的 numpy.random.permutation() 函数

Muhammad Maisam Abbas 2021年7月4日
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() 函数然后对这个新创建的整数元素序列进行打乱。

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