首先,我生成了一个随机的一维数组x
,然后通过交换x
的元素来生成数组y
。
现在,y
是x
的一个排列。原则上,如果我应用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))
I got
[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=x
是一样的。 - Machiney = x[:]
就像y = x.copy()
。 - ᴀʀᴍᴀɴx[:]
只有在 1D 数组中才有可能起作用。其次,x[:]
在 numpy 中创建了一个视图。我认为这在某些情况下可以创建一个副本,但通常不会。. . - mgilson