python - 在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)
多少个值。的零值被忽略。在这种特定情况下,我的预期输出是: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
方法做到这一点?
解决方案
似乎你可以使用np.bincount
-
In [17]: len(inp)-np.bincount(inp).cumsum()[:-1]
Out[17]: array([13, 10, 8, 8, 7, 6, 3, 2])
推荐阅读
- c# - 迁移会创建意外的 ID 字段,但未明确指定
- c# - 答案必须包含数组中的至少 2 - 3 个项目
- mongodb - 在 $project 阶段之后,$match 不过滤满足生成字段中条件的记录
- java - 如果 Enum 是期望元素之一,请检查 setter
- android-studio - 如何解决在 android studio 上运行应用程序的问题?
- javascript - 如何在 html 表格中的相应输入旁边显示消息?
- c - 在c中获取MAC地址并将其写入txt文件
- eiffel - Eiffel:错误:变量设置不正确。在 make 调用 default_create 或任何父调用/重新定义 default_create
- android - Android:为什么我不能使用“Intent”移动到另一个活动?
- google-analytics - 使用谷歌标签管理器过滤内部流量