Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python numpy argsort问题_Python_Sorting_Numpy - Fatal编程技术网

python numpy argsort问题

python numpy argsort问题,python,sorting,numpy,Python,Sorting,Numpy,首先我生成了一个随机的一维数组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

首先我生成了一个随机的一维数组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 ]
现在

我得到

当您这样做时:

y = x
你的别名是y和x。它们是相同的对象,您可以通过发出以下语句看到它们

y is x  # True
相反,您可能希望:

y = x.copy()

y=x[:]应该work@Arman谢谢,但是y=x[:]和y=xy=x一样[:]就像y=x一样。copy@Arman我使用的是python3,它可能适用于其他版本的python。顺便说一句,x是一个numpy数组而不是一个列表。@Arman-我不确定这一点。首先,x[:]将只有机会使用1D阵列。其次,x[:]在numpy中创建一个视图。我认为在某些情况下,这可以创建副本,但它通常不会。谢谢y=x和y=x[:]不工作;y是x,y=x。复制两个工件。
y is x  # True
y = x.copy()