gpt4 book ai didi

python - PyCharm numpy - 对数组进行排序不起作用?

转载 作者:行者123 更新时间:2023-12-05 09:30:01 25 4
gpt4 key购买 nike

我试图运行一些代码并对数组进行排序,下面是代码。在线它说可以使用这种方式对数组进行排序但是当我运行这段代码时,输​​出是 None 而不是排序代码,有人可以解释为什么吗?在 Jupyter Notebook 中,当我测试它时它工作正常。这两种方式都行不通 - 为什么会这样?

import numpy as np
arr = np.array([3, 7, 6, 8, 9, 1, 2, 3])
arr_sorted = arr.sort()
print(arr_sorted)

# alternative way
arr_sorted2 = np.ndarray.sort(arr)
print(arr_sorted2)

此外,我发现这反而有效 - 但我仍然不知道为什么。

print(np.sort(arr))
ab = np.sort(arr)
print(ab)

enter image description here

最佳答案

原因是当您对数组本身调用 sort() 时,它就地对数组进行排序并返回 None,所以 arr_sorted 在代码的第一部分也是 None。最好以这种方式调用该方法:

arr.sort()

对于 np.ndarray.sort(arr) 也是如此,因此 arr_sorted2 也是 None

但是,调用np.sort(arr) 将排序后的数组作为另一个对象返回,应该这样调用:

arr = np.sort(arr)

Jupyter 的行为是相同的,您可能需要重新启动笔记本并再次尝试从代码中获取有效输出,因为笔记本可能保存了变量的最后状态。

关于python - PyCharm numpy - 对数组进行排序不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70016105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com