numpy.random库比Python内置的random库有更多的方法,比如生成随机数组numpy.random.randint(low[,high, size, dtype])。如果不进行科学计算,使用random.randint(a,b)就足够了。
random.shuffle()千万不要用于二维numpy.array(也就是矩阵),正确的姿势当然是使用numpy自带的numpy.random.shuffle()
shuffle()是不能直接访问的,可以导入numpy.random模块,然后通过 numpy.random 静态对象调用该方法,shuffle直接在原来的数组上进行操作,改变原来数组的顺序,无返回值(是对列表x中的所有元素随机打乱顺序,若x不是列表,则报错)。
import numpy as np
arr = np.arange(10)
np.random.shuffle(arr)
print(arr)
# 输出:[2 4 0 1 8 7 3 6 5 9]
This function only shuffles the array along the first index of a multi-dimensional array,多维矩阵中,只对第一维(行)做打乱顺序操作:
arr = np.arange(9).reshape((3, 3))
np.random.shuffle(arr)
print(arr)
array([[3, 4, 5],
[6, 7, 8],
[0, 1, 2]])
shuffle()是不能直接访问的,可以导入 random 模块,然后通过 random 静态对象调用该方法,shuffle直接在原来的数组上进行操作,改变原来数组的顺序,无返回值(是对列表x中的所有元素随机打乱顺序,若x不是列表,则报错)。
import random
x = [20, 16, 10, 5]
random.shuffle(x)
print ("随机排序列表 : ", x)
随机排序列表 : [16, 5, 10, 20]
random.shuffle直接作用于多维numpy数组并不会只打乱第一维数据,random.shuffle千万不要用于二维numpy.array(也就是矩阵)
import random
arr = np.arange(9).reshape((3, 3))
print(arr)
# [[0 1 2]
# [3 4 5]
# [6 7 8]]
random.shuffle(arr)
print(arr)
# [[0 1 2]
# [0 1 2]
# [6 7 8]]
参考1:https://blog.csdn.net/jasonzzj/article/details/53932645
参考2:https://blog.csdn.net/qq_21063873/article/details/80860218