繁体   English   中英

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

[英]replace a number in a the row of a matrix if certain condition is met in python

如果满足特定条件,如何在矩阵的一行中替换数字? 例如,如果小于3,我如何替换最后一行中等于0的数字?

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

它应该看起来像:

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

可以直接就地执行此转换:

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]])

如果要将该逻辑应用于所有元素,则可能需要执行以下操作:

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]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM