ndarray的每一行中的N个最大值
我有一个ndarray,其中每一行都是一个单独的直方图。对于每一行,我希望找到前N个值。
我知道全局前N个值的解决方案(一种在numpy数组中找到最大N个元素的快速方法),但是我看不到如何获取每一行的前N个。
我可以遍历每一行并应用一维解决方案,但是我不应该能够通过numpy广播做到这一点吗?
回答:
您可以使用np.partition
与链接的问题相同的方式:排序已经沿最后一个轴进行:
In [2]: a = np.array([[ 5, 4, 3, 2, 1], [10, 9, 8, 7, 6]])
In [3]: b = np.partition(a, -3) # top 3 values from each row
In [4]: b[:,-3:]
Out[4]:
array([[ 3, 4, 5],
[ 8, 9, 10]])
以上是 ndarray的每一行中的N个最大值 的全部内容, 来源链接: utcz.com/qa/412916.html