【发布时间】:2020-02-22 19:57:11
【问题描述】:
我有一个如下所示的数组:
M=np.array([[1,2,3],[4,9,2],[3,5,6],[8,1,3]])
> M = [[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 = [[0,0,0],
> [4,9,0],
> [0,5,6],
> [8,0,3]]
我怎样才能使最后一部分更有效(对于数组或数据帧)?
【问题讨论】:
-
这是
M1[1,...],还是M1[row,...]? -
@WillemVanOnsem 嘿,我不确定我是否明白你的意思。你能详细说明一下吗?
标签: numpy dataframe conditional-statements setvalue