在我自己的函数中使用numpy.random.shuffle时,它意外更改了我的全局变量。我不确定它的用法是否有误解。
numpy版本为“ 1.16.4”
import numpy as np
def shuffle_test(a):
np.random.shuffle(a)
b=a
return b
outer_input = np.array(range(10))
print(outer_input)
outer_output = shuffle(outer_input)
print(outer_input)
这是结果 洗牌前输入:
[0 1 2 3 4 5 6 7 8 9]
随机播放后输入:
[5 4 7 1 8 2 6 0 9 3]
答案 0 :(得分:1)
这不是偶然的;这是np.random.shuffle
的描述行为通过改组其内容就地修改序列
您可以这样:
import numpy as np
outer_input = np.array(range(10))
np.random.shuffle(outer_input)
outer_input
# array([1, 9, 7, 4, 3, 6, 0, 5, 2, 8]) # for instance