从numpy数组中提取所需行
我有一个给定的numpy数组,如下所示从numpy数组中提取所需行,numpy,Numpy,我有一个给定的numpy数组,如下所示 import numpy as np data = np.array([[4,6,8,9,3,2,4,4,1], # no of 0s == 0 [4,6,8,9,3,0,0,4,0], # no of 0s == 3 [4,6,0,9,0,2,0,4,0], # no of 0s == 4 [4,6,8,0,3,0,0,0,0], # no of
import numpy as np
data = np.array([[4,6,8,9,3,2,4,4,1], # no of 0s == 0
[4,6,8,9,3,0,0,4,0], # no of 0s == 3
[4,6,0,9,0,2,0,4,0], # no of 0s == 4
[4,6,8,0,3,0,0,0,0], # no of 0s == 5
[4,6,8,9,3,2,0,4,0]]) # no of 0s == 2
从给定的数组data中,我必须提取至少包含0的3行。
因此,预期的是第1行、最后一行和第二行
res = np.array([[4,6,8,9,3,2,4,4,1], # no of 0s == 0
[4,6,8,9,3,0,0,4,0], # no of 0s == 3
[4,6,8,9,3,2,0,4,0]]) # no of 0s == 2
伙计们,我该怎么做呢?根据您的条件和分区求和
n = 3
c = (data == 0).sum(1)
mn = np.argpartition(c, n)[:n]
data[mn]
如果需要按原始索引值而不是按零数排序的行,请将最后一行替换为:
data[np.sort(mn)]
data[np.sort(mn)]