仅按行进行整洁的随机多维数组,保持列顺序不变 [英] Numpy shuffle multidimensional array by row only, keep column order unchanged
本文介绍了仅按行进行整洁的随机多维数组,保持列顺序不变的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何仅在Python中按行对多维数组进行混排(因此,请勿对列进行混排).
How can I shuffle a multidimensional array by row only in Python (so do not shuffle the columns).
我正在寻找最有效的解决方案,因为我的矩阵非常庞大.是否还可以在原始阵列上高效执行此操作(以节省内存)?
示例:
import numpy as np
X = np.random.random((6, 2))
print(X)
Y = ???shuffle by row only not colls???
print(Y)
我现在期望的是原始矩阵:
What I expect now is original matrix:
[[ 0.48252164 0.12013048]
[ 0.77254355 0.74382174]
[ 0.45174186 0.8782033 ]
[ 0.75623083 0.71763107]
[ 0.26809253 0.75144034]
[ 0.23442518 0.39031414]]
输出会随机洗排行,例如:
Output shuffle the rows not cols e.g.:
[[ 0.45174186 0.8782033 ]
[ 0.48252164 0.12013048]
[ 0.77254355 0.74382174]
[ 0.75623083 0.71763107]
[ 0.23442518 0.39031414]
[ 0.26809253 0.75144034]]
推荐答案
这就是numpy.random.shuffle()
的作用:
>>> X = np.random.random((6, 2))
>>> X
array([[ 0.9818058 , 0.67513579],
[ 0.82312674, 0.82768118],
[ 0.29468324, 0.59305925],
[ 0.25731731, 0.16676408],
[ 0.27402974, 0.55215778],
[ 0.44323485, 0.78779887]])
>>> np.random.shuffle(X)
>>> X
array([[ 0.9818058 , 0.67513579],
[ 0.44323485, 0.78779887],
[ 0.82312674, 0.82768118],
[ 0.29468324, 0.59305925],
[ 0.25731731, 0.16676408],
[ 0.27402974, 0.55215778]])
这篇关于仅按行进行整洁的随机多维数组,保持列顺序不变的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文