>我正在使用numpy。
我有一个数组Y
和一个矩阵X
. 这是为了回归。 它们数组具有标签,例如 0,1,2,3,4,5
. 我需要创建一个新数组,该数组删除了所有行的标签0
并删除了X
中的相应行。 最有效的方法是什么?
例如
for i in xrange(y.shape):
if y==0:
pop y pop X
Numpy 数组不擅长附加/删除行。如果您知道要删除哪些行,只需提取其他行(您需要)并创建一个新数组。
我不太明白你的问题,如果我错了,请纠正我:
x = x[y != 0]
y = y[y != 0]
例:
import numpy as np
x = np.array([[11, 12, 13], [21, 22, 23], [31, 32, 33]])
y = np.array([1, 0, 3])
x = x[y != 0]
y = y[y != 0]
现在:
x == array([[11, 12, 13],
[31, 32, 33]])
y == array([1, 3])
如果你知道无论如何你都会有那个空行,我不明白为什么你甚至需要 NUMPY 来做到这一点......
Z = Z[:][1:]
如果它只是第一行,这实际上适用于矩阵,当然还有数组
Z = Z[1:]
如果您不关心矩阵中项目的位置,我喜欢@eumiro的解决方案,但他们的解决方案将删除我相信的所有零和移位元素。