NumPy:返回一个平面矩阵,如果行== col,则忽略值

时间:2015-10-26 00:15:03

标签: python arrays numpy matrix

我正在尝试返回numpy一个array矩阵的numpy,其中忽略row == col的所有值。

例如:

>>> m = numpy.matrix([[1,2,3],[4,5,6],[7,8,9]])
>>> m
matrix([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])

# Some function....

# result:

m_flat = array([2,3,4,6,7,8])

1 个答案:

答案 0 :(得分:3)

您可以使用np.eye创建适当的布尔掩码:

In [139]: np.eye(m.shape[0], dtype='bool')
Out[139]: 
array([[ True, False, False],
       [False,  True, False],
       [False, False,  True]], dtype=bool)

In [140]: m[~np.eye(m.shape[0], dtype='bool')]
Out[140]: matrix([[2, 3, 4, 6, 7, 8]])