如何删除多行NumPy数组?

vcx*_*178 6 python numpy

如何删除多行NumPy数组?例如,我想删除xx.

import numpy as np
x = np.random.rand(10, 5)
np.delete(x, (0:5), axis=0)
Run Code Online (Sandbox Code Playgroud)

Geo*_*rgy 11

作为文档对于np.take比方说,第二参数可以是类型的np.delete,slice或整数的数组.所以,在你的情况下,你会想要使用这个:

>>> import numpy as np
>>> x = np.arange(35).reshape(7, 5)
>>> x
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24],
       [25, 26, 27, 28, 29],
       [30, 31, 32, 33, 34]])
>>> result = x[5:]
>>> result
array([[25, 26, 27, 28, 29],
       [30, 31, 32, 33, 34]])
Run Code Online (Sandbox Code Playgroud)


Bin*_*min 8

如果你想删除选定的行,你可以这样写

np.delete(x, (1,2,5), axis = 0)
Run Code Online (Sandbox Code Playgroud)

这将删除第 1,2 和第 5 行,如果你想像 (1:5) 那样删除,试试这个

np.delete(x, np.s_[0:5], axis = 0)
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以从数组中删除 0 到 4 行。

np.s_[0:5] --->> slice(0, 5, None) 两者都是一样的。