【发布时间】:2017-10-07 22:43:43
【问题描述】:
我试图洗牌二维数组,我遇到了一些奇怪的行为,可以使用以下代码恢复:
import random
import numpy
a = numpy.array([[1,2,3],[4,5,6],[7,8,9]])
random.shuffle(a)
print 'With rand\n', a
a = numpy.array([[1,2,3],[4,5,6],[7,8,9]])
numpy.random.shuffle(a)
print 'With numpy\n', a
输出
With rand
[[1 2 3]
[1 2 3]
[1 2 3]]
With numpy
[[4 5 6]
[7 8 9]
[1 2 3]]
如您所见,使用random 库(我的第一次尝试),它似乎覆盖了元素(或其他东西,我真的不明白这里发生了什么),因此没有执行洗牌。
但是使用numpy 库,它可以完美运行。
谁能解释一下为什么? IE。这种差异从何而来?如果可能,random.shuffle 函数对二维数组有什么作用?
谢谢,
【问题讨论】:
-
问题不是真的重复,但答案确实是there
-
@SergeBallesta:确实,答案就在其中一个答案中,谢谢!
标签: python arrays numpy random shuffle