我有一个正整数的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)
计算inp
的多少值不超过n
。忽略f(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
方法完成此操作?
发布于 2020-01-25 12:59:35
看起来你可以只使用np.bincount
-
In [17]: len(inp)-np.bincount(inp).cumsum()[:-1]
Out[17]: array([13, 10, 8, 8, 7, 6, 3, 2])
https://stackoverflow.com/questions/59909369
复制