如果在python中满足某些条件,则替换矩阵行中的数字

时间:2018-02-20 23:21:15

标签: python arrays python-3.x matrix

如果满足某些条件,如何替换矩阵的一行中的数字?例如,如果它们小于3,我如何将最后一行中的数字替换为零?

A:
matrix([[ 1,  2,  3,  4],
[ 2,  4, 10,  1]])

应该看起来像:

A:
matrix([[ 1,  2,  3,  4],
[ 0,  4, 10,  0]])

2 个答案:

答案 0 :(得分:1)

此转换可以直接进行:

import numpy as np

A = np.matrix([[ 1,  2,  3,  4],
               [ 2,  4, 10,  1]])

A[-1][A[-1] < 3] = 0

# matrix([[ 1,  2,  3,  4],
#         [ 0,  4, 10,  0]])

答案 1 :(得分:-1)

如果要将该逻辑应用于所有元素,您可能希望使用以下内容:

In [21]: a=[[ 1,  2,  3,  4],
    ...:    [ 2,  4, 10,  1]]
    ...:    
    ...: 

In [22]: b = list()

In [23]: l = lambda v: 0 if v < 3 else v

In [24]: for r in a:
    ...:     b.append(list(map(l, r)))
    ...:     

In [25]: b
Out[25]: [[0, 0, 3, 4], [0, 4, 10, 0]]