Numpy 按列将满足条件的所有值设置为零
我有一个如下所示的数组:Numpy 按列将满足条件的所有值设置为零,numpy,dataframe,conditional-statements,setvalue,Numpy,Dataframe,Conditional Statements,Setvalue,我有一个如下所示的数组: M=np.array([[1,2,3],[4,9,2],[3,5,6],[8,1,3]]) 对于每一列,我想将两个最小的值设置为零 所以我把它们按降序排序,我知道升序会更快 M1 = np.sort(M, axis=0)[::-1] 然后我想用像 for column in range(M.shape[1]): for row in range(M.shape[0]): if M[row, c
M=np.array([[1,2,3],[4,9,2],[3,5,6],[8,1,3]])
对于每一列,我想将两个最小的值设置为零
所以我把它们按降序排序,我知道升序会更快
M1 = np.sort(M, axis=0)[::-1]
然后我想用像
for column in range(M.shape[1]):
for row in range(M.shape[0]):
if M[row, column] < M1[1,column]:
M[row, column] = 0
如何使最后一部分对阵列或数据帧更有效?试试:
M[M您可以在此处使用遮罩,该遮罩由以下各项构成:
M < M1[1,:]
您可以在此处使用遮罩,该遮罩由以下各项构成:
M < M1[1,:]
这是M1[1,…]还是M1[row,…]?@WillemVanOnsem嘿,我不确定我是否理解你的意思。你能详细解释一下吗?这是M1[1,…],还是M1[row,…]?@WillemVanOnsem嘿,我不确定我是否理解你的意思。你能详细解释一下吗?谢谢你,威廉·范·昂森。这就是我要找的。我只是不知道如何在专栏中掩饰。但这似乎相当简单。谢谢你,威廉·范·昂森。这就是我要找的。我只是不知道如何在专栏中掩饰。但这似乎相当简单。
M < M1[1,:]
M[M < M1[1,:]] = 0