首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python/Numpy我已经为大型数组编写了最快的代码了吗?

Python/Numpy我已经为大型数组编写了最快的代码了吗?
EN

Stack Overflow用户
提问于 2017-12-12 17:19:40
回答 2查看 125关注 0票数 3

目标:I有一个大的一维数组(3000000+),它包含许多重复的距离。我正在尝试编写最快速的函数,它返回数组中出现的所有距离。我用numpy编写了一个函数,但是在代码的一行中有一个瓶颈。Swift性能是一个问题,因为计算是在一个for循环中为2400个不同的大距离数组进行的。

代码语言:javascript
运行
复制
import numpy as np
for t in range(0, 2400):
 a=np.random.randint(1000000000, 5000000000, 3000000)
 b=np.bincount(a,minlength=np.size(a))
 c=np.where(b == 3)[0] #SLOW STATEMENT/BOTTLENECK
 return c

2000000000,3005670000,2000000000,12345667,4000789000,12345687,12345667,2000000000,12345667 预期的结果:给定一个一维距离数组,当查询返回主数组中出现3次的所有距离的数组时,期望返回一个数组2000000000,12345667。

我该怎么办?

EN

Stack Overflow用户

发布于 2017-12-12 17:41:14

您可以使用Counter

代码语言:javascript
运行
复制
>>> a = np.array([2000000000,3005670000,2000000000,12345667,4000789000,12345687,12345667,2000000000,12345667])
>>> c = Counter(a)
>>> np.array([i for i in c if c[i] >= 3])
array([2000000000,   12345667])
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47778162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档