numpy 取第二列最小的点

mhd8tkvw  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(83)
bins = array([[2076., -861.84471079],
       [2076., -858.23866597],
       [2076., -861.84471079],
       ...,
       [9757., 1847.33889178],
       [9757., 1830.39082856],
       [9757., -932.14347751]])

对于第一列中的每个唯一数,我想取y最小的点

bins = array([[2076., -858.2386],
       [9757., -932.14]])

numpy有什么简单的解决方案?

kqqjbcuj

kqqjbcuj1#

我们可以使用pandas将点按x值分组,然后计算每组中的最小值,如下所示:

import pandas as pd
import numpy as np
bins = np.array([[2076., -861.84471079],
       [2076., -858.23866597],
       [2076., -861.84471079],
       [9757., 1847.33889178],
       [9757., 1830.39082856],
       [9757., -932.14347751]])
print(bins.shape)
df = pd.DataFrame(bins, columns=['x', 'y'])
np.array(df.loc[df.groupby(['x'])['y'].idxmin()])

相关问题