np.argsort(array)[::-1][:10] 和 np.argsort(array)[-10:] 之间的内存消耗有区别吗?
它们都返回相同的数字(相同的答案),但我的大学医生说第一个是最糟糕的,因为它使用创建一个新的降序数组占用更多空间,所以我想确定一下。
不,对于
numpy.ndarray
对象,这些切片会创建 视图,并且创建视图只需要少量恒定的额外空间。
来自文档:
基本切片生成的所有数组始终是原始数组的视图 数组。
您的教授可能认为切片的工作方式与内置
list
对象相同,这确实需要额外的副本。