如果满足某些条件,如何替换矩阵的一行中的数字?例如,如果它们小于3,我如何将最后一行中的数字替换为零?
A:
matrix([[ 1, 2, 3, 4],
[ 2, 4, 10, 1]])
应该看起来像:
A:
matrix([[ 1, 2, 3, 4],
[ 0, 4, 10, 0]])
答案 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]]