概述
Numpy计算数组中满足条件元素个数
需求:有一个非常大的数组比如1亿个数字,求出里面数字小于5000的数字数目
1.使用numpy的random模块生成1亿个数字
In [1]:
import numpy as np
In [3]:
arr = np.random.randint(1, 10000, size=int(1e8))
In [4]:
arr[: 10]
Out[4]:
array([ 594,
490, 6373, 7500, 3744,
396, 5015, 7801, 4586, 3148])
In [5]:
arr.size
Out[5]:
100000000
2.使用Python原生语法实现
In [6]:
pyarr = list(arr)
In [7]:
# 计算下结果,用于对比是否准确
len([x for x in pyarr if x>5000])
Out[7]:
49995195
In [8]:
# 记一下时间
%timeit len([x for x in pyarr if x>5000])
23.1 s ± 358 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
3.使用numpy的向量化操作实现
In [9]:
# 计算下结果,用于对比是否准确
arr[arr>5000].size
Out[9]:
49995195
In [10]:
(arr>5000)[: 10]
Out[10]:
array([False, False,
True,
True, False, False,
True,
True, False,
False])
In [11]:
# 记一下时间
%timeit arr[arr>5000].size
926 ms ± 50.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
4.对比下时间
In [12]:
23.1 * 1000 / 926
# *1000是换算s与ms之间的单位
Out[12]:
24.946004319654428
最后
以上就是听话糖豆为你收集整理的Numpy-06计算数组中满足条件元素个数Numpy计算数组中满足条件元素个数的全部内容,希望文章能够帮你解决Numpy-06计算数组中满足条件元素个数Numpy计算数组中满足条件元素个数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复