python numpy argsort问题

时间:2016-01-12 22:02:49

标签: python sorting numpy

首先我生成了一个随机1d数组x, 然后我通过交换y的元素生成了数组x

现在yx的排列,原则上是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]

1 个答案:

答案 0 :(得分:4)

当你这样做时:

y = x

别名 yx。它们是您通过发出以下声明可以看到的相同对象

y is x  # True

相反,你可能想要:

y = x.copy()