首页 > 解决方案 > 删除python numpy数组中与列的前n个值不对应的所有行

问题描述

我有以下包含 2 列的数组。我想确定第二列中的前 3 个最高值,并删除所有不包含前 3 个值的行。

array([[0, 3],
       [1, 4],
       [2, 5],
       [3, 5],
       [4, 2]])

输出:

array([[2, 5],
       [3, 5],
       [1, 4]])

标签: pythonpython-3.xpandasnumpy

解决方案


您可以使用 numpy argsort 并取最后 3 行

array_name[np.argsort(array_name, axis = 0)[:,1]][-3:]

推荐阅读