【发布时间】:2021-01-18 08:00:31
【问题描述】:
为什么 python 对数组进行排序,我没有要求它排序,如何让它停止?
例如,我有一个 NumPy 数组 A:
A = np.array[4, 7, 1, 3, 2], [3, 2, 4, 2, 1]
我希望对这个数组进行排序,但保留其原始结构,以便以后对其进行索引。所以我的想法是制作一个数组的副本并对副本进行排序:
B = A
B.sort()
那么,为什么当我在这个排序命令之后打印 A 时,它会打印排序后的数组?即使我从未调用过 sort ?
print(a)
[[1 2 3 4 7]
[1 2 2 3 4]]
有没有办法解决这个问题?
【问题讨论】:
-
B = A不创建副本。 -
正确,B 只是引用了内存中存储 A 的位置,所以它们指向的是同一个东西。
-
我明白了。有没有办法复制?
-
@jonrsharpe 我认为人们很难用 Python 解决这个问题:
=从不 复制。如果你想要一个副本,你必须明确说明它。见Zen of Python:显式优于隐式。 -
@Yoddlenod 阅读以下内容:nedbatchelder.com/text/names.html
标签: python arrays numpy sorting