在满足条件的二维数组中获取索引的最小值

时间:2019-05-24 14:35:54

标签: python numpy numpy-ndarray numpy-slicing numpy-indexing

我有一个2D形状的数组(100,12)。当数组的所有“行”都满足条件时,我想获取首次出现的索引。

x1 = np.random.randint(0,7, 120).reshape(10,12)
print(x1)

[[4 0 3 6 2 2 3 2 5 3 4 2]
 [0 5 0 1 0 4 4 4 4 3 5 2]
 [5 1 1 6 0 3 4 5 2 2 4 1]
 [1 6 4 3 0 2 4 5 3 4 5 5]
 [4 4 4 6 4 0 1 4 3 1 4 5]
 [5 2 4 3 0 1 2 5 2 1 0 6]
 [2 6 4 0 5 3 1 2 3 1 6 4]
 [2 0 1 3 4 4 3 4 1 1 4 0]
 [3 5 2 5 5 2 5 1 5 4 6 3]
 [6 1 4 0 0 2 3 1 6 5 2 0]]

我的解决方案:

row_ind, col_ind = np.where(x1==0)
x2 = list(zip(row_ind,col_ind))
x3 = np.array(x2)
temp_df=pd.DataFrame({'col1':x3[:,0],'col2':x3[:,1]})
min_v = list(temp_df.groupby('col1')['col2'].min())

预期结果:

[1, 0, 4, 4, 5, 4, 3, 1, 3]

我相信有更好的方法来实现这一目标。

0 个答案:

没有答案