我是靠谱客的博主 听话糖豆,最近开发中收集的这篇文章主要介绍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计算数组中满足条件元素个数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部