numpy.random.shuffle 函数用于随机打乱数组中的元素顺序。这个函数会直接修改原始数组,而不返回一个新的打乱顺序的数组。shuffle 函数没有额外的可选参数,其语法为:
numpy.random.shuffle(x)
其中,x 是要被打乱的数组。这个函数会就地修改数组 x 的顺序,而不返回任何值。因为它是就地操作,所以调用后原始数组的顺序会被打乱。
示例:
import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
np.random.shuffle(my_array)
print(my_array)
在这个示例中,my_array 数组的元素顺序被随机打乱。
如果需要得到一个新的打乱顺序的数组,可以使用 numpy.random.permutation 函数,它返回一个新的数组,而不修改原始数组。numpy.random.permutation 的语法为:
numpy.random.permutation(x)
其中,x 是要被打乱的数组。这个函数返回一个新的打乱顺序的数组,而不修改原始数组。
对于多维数组,numpy.random.shuffle 函数会沿着第一个轴(axis 0)打乱数组的顺序。这意味着多维数组的各行(或者说第一个轴上的元素)将被打乱,而每行内部的元素顺序保持不变。
下面是一个示例,演示了如何使用 numpy.random.shuffle 对多维数组进行打乱:
import numpy as np
# 创建一个二维数组
my_array = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print("原始数组:")
print(my_array)
# 沿着第一个轴打乱数组顺序
np.random.shuffle(my_array)
print("\n打乱后的数组:")
print(my_array)
在这个示例中,my_array 是一个3x3的二维数组。numpy.random.shuffle 将打乱数组的各行,但每行内部的元素顺序保持不变。打印结果可能是类似于以下的形式:
原始数组:
[[1 2 3]
[4 5 6]
[7 8 9]]
打乱后的数组:
[[7 8 9]
[1 2 3]
[4 5 6]]
可以看到,各行的顺序被打乱,但每一行内的元素仍然保持原来的相对顺序。如果需要对整个多维数组的元素进行全局打乱,可以使用 numpy.random.permutation 函数。