使用Pythonic的方式从NumPy数组中删除元素

9
如果您有array = np.array([1,2,3,4])index = np.array([0,1,2]),并且您想要从数组中删除索引元素,那么最好的方法是什么,而不需要循环呢?
1个回答

13
你可以使用numpy.delete函数:
smaller_array = np.delete(array,index)

1
但为了完整起见,在这个问题中,@askewchan发现构建布尔掩码比使用np.delete更快,即mask = np.ones(array.shape, dtype=np.bool); mask[index] = False; smaller_array = array[mask] - Jaime
4
随着1.8及以后版本中删除操作的一些更快路径(适用于较小的切片和单个整数),速度差异应该基本消失,因为删除将基本上成为其的缩写。但是,在稍长的时间内,对于越界/负数或布尔索引仍然存在一些差异。 - seberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接