我有Xy:
matrix([[1, 1, 1, 1],
[1, 2, 2, 2],
[2, 3, 3, 3],
[2, 4, 4, 4]])
如何返回第一列== 1的所有行?
答案应该是:
matrix([[1, 1, 1, 1],
[1, 2, 2, 2]])
答案 0 :(得分:2)
matrix
类型通常应该避免使用numpy.array
。但是,如果您觉得需要使用它,那么您可以使用numpy.compress
过滤矩阵。
这样做时,压扁过滤器很重要......
>>> numpy.compress((m[:,0] == 1).flat, m, axis=0)
matrix([[1, 1, 1, 1],
[1, 2, 2, 2]])
这里,m[:,0] == 1
返回一个布尔矩阵,表明哪些行被认为是可接受的。 numpy.compress
会为我们选择那些可接受的行。