为什么python会自动排序一个我没有告诉它排序的数组
为什么python会对数组进行排序?我没有要求它进行排序,如何让它停止 例如,我有一个NumPy数组A: 我希望对该数组进行排序,但保留其原始结构,以便稍后对其进行索引。所以我的想法是制作数组的副本并对副本进行排序:为什么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相同的位置,因此修
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]]