我是靠谱客的博主 包容口红,这篇文章主要介绍Numpy-06计算数组中满足条件元素个数Numpy计算数组中满足条件元素个数,现在分享给大家,希望可以做个参考。

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计算数组中满足条件元素个数内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(113)

评论列表共有 0 条评论

立即
投稿
返回
顶部