从NumPy数组中删除一个值

use*_*022 5 python arrays numpy

我正在尝试所有只包含NumPy数组中的零的行.例如,我想删除[0,0]

n = np.array([[1,2], [0,0], [5,6]])
Run Code Online (Sandbox Code Playgroud)

并留下:

np.array([[1,2], [5,6]])
Run Code Online (Sandbox Code Playgroud)

Sim*_*got 10

要从numpy表中删除第二行:

import numpy
n = numpy.array([[1,2],[0,0],[5,6]])
new_n = numpy.delete(n, 1, axis=0)
Run Code Online (Sandbox Code Playgroud)

要删除仅包含0的行:

import numpy
n = numpy.array([[1,2],[0,0],[5,6]])
idxs = numpy.any(n != 0, axis=1) # index of rows with at least one non zero value
n_non_zero = n[idxs, :] # selection of the wanted rows
Run Code Online (Sandbox Code Playgroud)

  • `numpy.delete(n,numpy.s_ [1],axis = 0)`可以简化为`numpy.delete(n,1)`.此外,`numpy.any(n!= 0,axis = 1)`可以简化为`n.any(axis = 1)`.并且`n [idx,:]`可以简单地用`n [idx]`代替. (3认同)