首先我生成了一个随机的一维数组,
然后通过交换x
的元素生成数组y
。
现在x
是y
的置换,原则上,如果
我申请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]
最佳答案
当你这样做时:
y = x
你把
y
和x
化名。它们是同一个对象,您可以通过以下语句看到y is x # True
相反,你可能想要:
y = x.copy()
关于python - python numpy argsort问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34754605/