繁体   English   中英

如果列中的第一个值大于last,则Numpy删除数组中的列

[英]Numpy remove column in array if first value in column is larger than last

如果第一个值大于该列中的最后一个值,那么从NumPy数组中删除列的有效方法是什么。 假设我有b

>>> import numpy as np 
>>> b = np.arange(9).reshape(3,3)
>>> b[0,0] = 9

>>> b
array([[9, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

并且由于b[0,0] > b[-1,0] ,您希望删除第一列并有效地留下:

array([[1, 2],
   [4, 5],
   [7, 8]])

有效的方法是什么? 我已经看到它用行完成,表示如下:

b[np.logical_not(np.logical_and(b[:,0] > 20, b[:,0] < 25))]

但不是列。 此外,如果可以避免转置,那肯定会更好,因为我想在大型数据集上使用它。

只需使用逻辑索引:

new_b = b[:, b[0,:]<=b[-1,:]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM