numpy - 数组随机排序

数组随机排序函数:

random.Generator.permutation(x, axis=0)

随机排列一个序列,或者返回一个排列过的范围。

  • x: int or array_like

如果 x 为整数,则随机排列 np.arange(x)。如果 x 是数组,则复制数组,并随机排列数组元素。

  • axis: int, optional

随机排列的轴,默认为 0.

例1,生成指定范围内数值的随机排序:

rng = np.random.default_rng()
a1 = rng.permutation(10)
print(a1)
# [5 8 6 2 7 1 0 3 9 4]

例2,对数组随机排序:

a2 = rng.permutation([1, 4, 9, 12, 15])
print(a2)
# [ 1 15  4  9 12]

例 3,多维数组随机排序:

rng = np.random.default_rng()
arr = np.arange(9).reshape((3, 3))
print(arr)
# [[0 1 2]
#  [3 4 5]
#  [6 7 8]]

a3 = rng.permutation(arr)
print(a3)
# [[6 7 8]
#  [0 1 2]
#  [3 4 5]]

解释: axis 默认为 0,所以这里只对第 1 维进行了随机排序。

例 4,多维数组指定随机排序轴:

rng = np.random.default_rng()
arr = np.arange(9).reshape((3, 3))
print(arr)
# [[0 1 2]
#  [3 4 5]
#  [6 7 8]]

a3 = rng.permutation(arr, axis=1)
print(a3)
# [[1 2 0]
#  [4 5 3]
#  [7 8 6]]

解释:这里指定 axis=1,所以对第二维进行随机排序,第1维保持不变。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值