gpt4 book ai didi

python - 使用 Numpy 随机排列数组的列

转载 作者:太空狗 更新时间:2023-10-29 17:13:22 25 4
gpt4 key购买 nike

假设我有一个维度为 (n, m) 的数组 r。我想打乱那个数组的列。

如果我使用 numpy.random.shuffle(r) 它会打乱行。我怎样才能只洗牌?因此第一列随机变为第二列,第三列随机变为第一列,依此类推。

示例:

输入:

array([[  1,  20, 100],
[ 2, 31, 401],
[ 8, 11, 108]])

输出:

array([[  20, 1, 100],
[ 31, 2, 401],
[ 11, 8, 108]])

最佳答案

一种方法是打乱转置数组:

 np.random.shuffle(np.transpose(r))

另一种方法(参见 YXD 的回答 https://stackoverflow.com/a/20546567/1787973 )是生成排列列表以按该顺序检索列:

 r = r[:, np.random.permutation(r.shape[1])]

在性能方面,第二种方法更快。

关于python - 使用 Numpy 随机排列数组的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20546419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com