【发布时间】:2020-08-28 10:26:14
【问题描述】:
我有以下代码将零移动到标准 Python 列表的一端
def _moveZeros(x):
if x==0:
return x
else:
return -1
l = [1,0,5,6,0,0,7,2]
l.sort(key=_moveZeros)
print(l)
这种情况下的输出是 [1,5,6,7,2,0,0,0]
如何使用 Numpy 数组完成类似的操作?
【问题讨论】:
-
嗯np.sort?已经实施了。
-
是的,但我只想移动零。我不相信 np.sort 接受传递“key”参数来指定自定义评估函数
-
您可以使用所需的排序值构造一个新数组,并将
argsort应用于该数组。这为您提供了将重新排序原始索引的索引。
标签: python list numpy sorting numpy-ndarray