Numpy计算数组中满足条件元素个数
需求:有一个非常大的数组比如1亿个数字,求出里面数字小于5000的数字数目
1.使用numpy的random模块生成1亿个数字
In [1]:
复制代码
1
2import numpy as np
In [3]:
复制代码
1
2arr = np.random.randint(1, 10000, size=int(1e8))
In [4]:
复制代码
1
2arr[: 10]
Out[4]:
复制代码
1
2array([ 594, 490, 6373, 7500, 3744, 396, 5015, 7801, 4586, 3148])
In [5]:
复制代码
1
2arr.size
Out[5]:
复制代码
1
2100000000
2.使用Python原生语法实现
In [6]:
复制代码
1
2pyarr = list(arr)
In [7]:
复制代码
1
2
3# 计算下结果,用于对比是否准确 len([x for x in pyarr if x>5000])
Out[7]:
复制代码
1
249995195
In [8]:
复制代码
1
2
3
4# 记一下时间 %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]:
复制代码
1
2
3# 计算下结果,用于对比是否准确 arr[arr>5000].size
Out[9]:
复制代码
1
249995195
In [10]:
复制代码
1
2(arr>5000)[: 10]
Out[10]:
复制代码
1
2
3array([False, False, True, True, False, False, True, True, False, False])
In [11]:
复制代码
1
2
3
4# 记一下时间 %timeit arr[arr>5000].size 926 ms ± 50.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
4.对比下时间
In [12]:
复制代码
1
223.1 * 1000 / 926 # *1000是换算s与ms之间的单位
Out[12]:
复制代码
1
224.946004319654428
最后
以上就是包容口红最近收集整理的关于Numpy-06计算数组中满足条件元素个数Numpy计算数组中满足条件元素个数的全部内容,更多相关Numpy-06计算数组中满足条件元素个数Numpy计算数组中满足条件元素个数内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复