PyCharm中numpy数组调用sort方法返回None无法正常排序问题
Numpy排序返回None问题解答
arr.sort()、np.ndarray.sort(arr)属于原地排序方法:排序逻辑直接修改调用的原数组本身,官方设计的返回值就是None,不会返回排序后的数组。你运行上述两种写法后,直接打印原数组arr即可看到排序后的结果:import numpy as np arr = np.array([3, 7, 6, 8, 9, 1, 2, 3]) arr.sort() print(arr) # 输出:[1 2 3 3 6 7 8 9]- 你观察到的Jupyter中运行正常属于测试场景差异:如果在Jupyter单元格单独写一行
arr.sort()不做赋值、不主动打印返回值,Jupyter默认不会输出None,你如果后续直接查看原数组arr的内容,会得到排序后的结果,很容易误以为是该方法返回了排序后的数组,和你在PyCharm中直接打印返回值的测试逻辑不一样。 np.sort(arr)属于非原地排序函数:不会修改原数组的内容,执行后会返回一个新的、已排序的数组,所以你赋值给变量后打印可以得到预期结果,原数组arr的内容保持排序前的状态。
内容的提问来源于stack exchange,提问作者user7437134
相关产品推荐
相关产品推荐

