如何同时删除numpy数组的一批行?

时间:2017-08-01 01:04:51

标签: python arrays numpy

我正在研究一个python项目,但卡在一个扰乱我几个小时的地方。我真的需要你的帮助!!!

以下是问题:

我有一个非常大的numpy数组X(1300000×110),我想同时从数组中删除一批行。用于删除的行的索引存储在python列表中。   假设X是数组,lis是列表。

是否有任何numpy函数可以执行此操作或其他一些智能技巧?

1 个答案:

答案 0 :(得分:1)

有一个NumPy函数,np.delete

np.delete(arr, indices_to_be_deleted, axis=0)

例如,

In [91]: arr = np.arange(20).reshape(10,2, order='F'); arr
Out[91]: 
array([[ 0, 10],
       [ 1, 11],
       [ 2, 12],
       [ 3, 13],
       [ 4, 14],
       [ 5, 15],
       [ 6, 16],
       [ 7, 17],
       [ 8, 18],
       [ 9, 19]])

In [92]: np.delete(arr, [0,3,4,7], axis=0)
Out[92]: 
array([[ 1, 11],
       [ 2, 12],
       [ 5, 15],
       [ 6, 16],
       [ 8, 18],
       [ 9, 19]])