【发布时间】:2016-03-20 15:42:08
【问题描述】:
我有一个numpy矩阵如下:
data = np.matrix(
"5 3 1;"
"4 4 1;"
"6 4 1;"
"8 2 1;"
"3 5 1;"
"1 7 1;"
"5 4 1;"
"0 1 0;"
"2 0 0")
# Output:
matrix([[5, 3, 1],
[4, 4, 1],
[6, 4, 1],
[8, 2, 1],
[3, 5, 1],
[1, 7, 1],
[5, 4, 1],
[0, 1, 0],
[2, 0, 0]])
我想要的是过滤第三列值为1的矩阵;也就是说,我不想得到第三个值为0的行。总之,我想提取下面的矩阵:
matrix([[5, 3, 1],
[4, 4, 1],
[6, 4, 1],
[8, 2, 1],
[3, 5, 1],
[1, 7, 1],
[5, 4, 1]])
我尝试了一些组合来过滤它;但没有一个对我有用。例如,下面的代码排除了为零的行,但它只返回第一列。
data[data[:,2]>0]
#Output:
matrix([[5, 4, 6, 8, 3, 1, 5]])
有没有办法在不显式编写循环语句的情况下过滤这个矩阵?
【问题讨论】: