Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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会自动排序一个我没有告诉它排序的数组_Python_Arrays_Numpy_Sorting - Fatal编程技术网

为什么python会自动排序一个我没有告诉它排序的数组

为什么python会自动排序一个我没有告诉它排序的数组,python,arrays,numpy,sorting,Python,Arrays,Numpy,Sorting,为什么python会对数组进行排序?我没有要求它进行排序,如何让它停止 例如,我有一个NumPy数组A: 我希望对该数组进行排序,但保留其原始结构,以便稍后对其进行索引。所以我的想法是制作数组的副本并对副本进行排序: B = A B.sort() 那么,为什么在这个sort命令之后打印一个数组时,它会打印排序后的数组呢?即使我从未打过电话给sort print(a) [[1 2 3 4 7] [1 2 2 3 4]] 有办法解决这个问题吗?如上所述,B只是指向内存中与a相同的位置,因此修

为什么python会对数组进行排序?我没有要求它进行排序,如何让它停止

例如,我有一个NumPy数组A:

我希望对该数组进行排序,但保留其原始结构,以便稍后对其进行索引。所以我的想法是制作数组的副本并对副本进行排序:

B = A
B.sort()
那么,为什么在这个sort命令之后打印一个数组时,它会打印排序后的数组呢?即使我从未打过电话给sort

print(a)


[[1 2 3 4 7]
[1 2 2 3 4]]

有办法解决这个问题吗?

如上所述,B只是指向内存中与a相同的位置,因此修改B也会修改a。您需要调用.copy方法,如下所示:


B=A不创建副本。正确,B只是引用内存中存储A的位置,所以它们指向同一个对象。我明白了。有办法复制吗?@jornsharpe我认为这是一件让人们很难用Python来概括的事情:=从不复制。如果你想要一份副本,你必须清楚地说明。请参阅:显式优于隐式。@Yoddlenod阅读以下内容:
print(a)


[[1 2 3 4 7]
[1 2 2 3 4]]