首页 > 解决方案 > 在numpy中交换下降条的轴

问题描述

我有一个numpy像这样的正整数数组:

inp = np.array([8,2,7,6,1,6,1,4,8,2,1,6,5])

我想创建一个新numpy数组[f(1), f(2), f(3),...],计算不超过f(n)多少个值。的零值被忽略。在这种特定情况下,我的预期输出是:inpnf(n)

out = np.array([13,10,8,8,7,6,3,2])

我试过循环:

[len(inp[inp>=i]) for i in range(1, max(inp)+1)] 

但这不是有效的。我怎样才能使用numpy方法做到这一点?

标签: pythonnumpy

解决方案


似乎你可以使用np.bincount-

In [17]: len(inp)-np.bincount(inp).cumsum()[:-1]
Out[17]: array([13, 10,  8,  8,  7,  6,  3,  2])

推荐阅读