首先我生成了一个随机的一维数组,
然后通过交换x的元素生成数组y
现在xy的置换,原则上,如果
我申请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

你把yx化名。它们是同一个对象,您可以通过以下语句看到
y is x  # True

相反,你可能想要:
y = x.copy()

关于python - python numpy argsort问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34754605/

10-12 18:14