如果python中满足某些条件,则替换矩阵行中的数字
如果满足某些条件,如何替换矩阵行中的数字?例如,如果最后一行中的数字小于3,我如何将它们替换为等于零如果python中满足某些条件,则替换矩阵行中的数字,python,arrays,python-3.x,matrix,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]]) 如果您想将该逻辑应用于所有元素,您可能需要执行以下操作: In [21]: a=[[ 1, 2, 3, 4], ...: [ 2, 4, 10, 1]]
A:
matrix([[ 1, 2, 3, 4],
[ 2, 4, 10, 1]])
它应该是这样的:
A:
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]]
[21]中的a=[1,2,3,4],
...: [ 2, 4, 10, 1]]
...:
...:
在[22]中:b=list()
在[23]中:如果v<3,则l=λv:0,否则v
In[24]:对于a中的r:
附加(列表(映射(l,r)))
...:
在[25]:b中
Out[25]:[0,0,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]])
将numpy导入为np
A=np.矩阵([[1,2,3,4],
[ 2, 4, 10, 1]])
A[-1][A[-1]<3]=0
#矩阵([[1,2,3,4],
# [ 0, 4, 10, 0]])
用什么替换它们?都是同一个号码?列表中的值?替换为零。如果最后一列中的任何数字小于3,则将其替换为zero@AlbertoAlvarez,以下解决方案之一是否有帮助?如果是这样,请随意接受(在左侧打勾)。