首先我生成了一个随机1d数组x
,
然后我通过交换y
的元素生成了数组x
。
现在y
是x
的排列,原则上是if
我应用numpy argsort,我会得到不同的结果,事实证明,
事实并非如此。
这是我的python代码,
import numpy as np
x = np.random.random(10)
print(x)
y = x
y[0], y[1] = x[1], x[0]
y[3], y[4] = x[4], x[3]
print(y)
然后我得到了
[ 0.818 0.99 0.291 0.608 0.773 0.232 0.041 0.136 0.645 0.94 ]
[ 0.99 0.818 0.291 0.773 0.608 0.232 0.041 0.136 0.645 0.94 ]
现在
print(np.argsort(x))
print(np.argsort(y))
我得到了
[6 7 5 2 4 8 3 1 9 0]
[6 7 5 2 4 8 3 1 9 0]
答案 0 :(得分:4)
当你这样做时:
y = x
您别名 y
和x
。它们是您通过发出以下声明可以看到的相同对象
y is x # True
相反,你可能想要:
y = x.copy()