如何通过行中的某些条件在Python中的NxM
中过滤scipy/numpy
矩阵的元素?
例如,只是你可以在哪里(my_matrix != 3
)处理矩阵“逐元素”,我想按行执行此操作,以便您可以询问(my_matrix != some_other_row)
之类的内容,过滤掉所有不等于some_other_row
的行。怎么办呢?
答案 0 :(得分:3)
假设你有一个矩阵
a = numpy.array([[0, 1, 2],
[3, 4, 5],
[0, 1, 2]])
并且您希望得到行的索引不等于
row = numpy.array([0, 1, 2])
你可以通过
获得这些指数indices, = (a != row).any(1).nonzero()
a != row
将每个a
行与row
元素进行比较,返回与a
形状相同的布尔数组。然后,我们沿第一轴使用any()
来查找任何元素与row
中的对应元素不同的行。最后,nonzero()
为我们提供了这些行的索引。