当前位置: 首页 > wzjs >正文

深圳 网站建设东莞营销网站建设优化

深圳 网站建设,东莞营销网站建设优化,免费注册163邮箱帐号,适合公司建设的网站import numpy as np import timeit测试数据 开头有 30000 个 0 元素,中间有 100000 个非 0 元素,结尾有 70000 个为 0 元素的 numpy 数组。下面以计算数组末尾的零的数量为例。 array np.array([0] * 30000 [i for i in range(1, 1000001)] [0] * 7…
import numpy as np
import timeit
测试数据

开头有 30000 个 0 元素,中间有 100000 个非 0 元素,结尾有 70000 个为 0 元素的 numpy 数组。下面以计算数组末尾的零的数量为例。

array = np.array([0] * 30000 + [i for i in range(1, 1000001)] + [0] * 70000)
方法 1

使用 Python 的循环,从后向前遍历 numpy 数组并统计为 0 元素的个数,当遇到非 0 元素时,则跳出循环。

res1 = 0
for i in range(array.shape[0] - 1, -1, -1):if array[i] == 0:res1 += 1else:break
方法 2

先使用 numpy 的切片器倒序数组,然后使用 numpy 的 consum 的函数计算前缀和;此时除原数组末尾的 0 元素外的其他元素均已变为非 0 元素。于是,先使用 numpy 的 count_nonzero 方法统计满足元素值等于 0 的元素数量。

numpy 的 参考文档:https://numpy.org/doc/stable/reference/generated/numpy.cumsum.html

res2 = np.count_nonzero(np.cumsum(array[::-1]) == 0)
方法 3

在方法 2 的基础上,先直接统计非 0 元素数量,再使用元素总数减去非 0 元素数量得到 0 元素数量。

res3 = array.shape[0] - np.count_nonzero(np.cumsum(array[::-1]))
结果检查
assert res1 == res2 == res3
性能检查

方法 1 计算时间:1.6362712000000001

print(timeit.timeit("res = 0\n""for i in range(array.shape[0] - 1, -1, -1):\n""    if array[i] == 0:\n""        res += 1\n""    else:\n""        break",setup="import numpy as np\n""array = np.array([0] * 30000 + [i for i in range(1, 1000001)] + [0] * 70000)",number=100
))

方法 2 计算时间:0.4067506000000001

因为使用了 numpy 函数替代了 Python 的原生循环,因此性能提升较多。

print(timeit.timeit("np.count_nonzero(np.cumsum(array[::-1]) == 0)",setup="import numpy as np\n""array = np.array([0] * 30000 + [i for i in range(1, 1000001)] + [0] * 70000)",number=100
))

方法 3 计算时间:0.33288949999999984

因为节省了一次计算数组中元素是否等于 0 的判断操作,因此性能有所提升。

print(timeit.timeit("array.shape[0] - np.count_nonzero(np.cumsum(array[::-1]))",setup="import numpy as np\n""array = np.array([0] * 30000 + [i for i in range(1, 1000001)] + [0] * 70000)",number=100
))
http://www.dtcms.com/wzjs/260719.html

相关文章:

  • 网站托管怎么做等保宁德市属于哪个省
  • 新手做淘宝客网站教程百度法务部联系方式
  • 泉州网站制作多少钱谷歌搜索引擎入口google
  • IT做网站工资怎么样营销技巧和营销方法心得
  • 网站建设费用摊销会计分录网络促销方案
  • 文案策划的网站三个关键词介绍自己
  • 网站怎么做竞价免费的网站推广平台
  • 苏州专业高端网站建设企业自己创建个人免费网站
  • 闭站保护期间网站能够打开吗软文范例大全1000字
  • 烟台网站建设科技公司企业网络策划
  • 机器ip后面加个端口做网站搜索风云榜百度
  • 湖南外发加工网关键seo排名点击软件
  • 珠海新盈科技有限公司 网站建设互联网销售模式
  • 精品网站建设费用磐石网络名气合肥关键词排名推广
  • 服装网站怎么做的百度问一问在线咨询客服
  • 哈尔滨百度网站排名短视频seo软件
  • 用什么技术可以做web网站app推广公司
  • 手做网站免费游戏推广平台
  • 玉溪做网站微信管理工具
  • 一起做彩票网站的人襄阳seo推广
  • 阿里巴巴做网站吗媒体宣传推广方案
  • 网站建设头像购物网站推广方案
  • 电商做网站什么意思今日头条新闻视频
  • dede网站单页面怎么做百度官方网页版
  • 2023年最新科技新闻摘抄长沙专业seo优化推荐
  • mac 搭建个人网站引擎网站
  • 建网站做站长怎么赚钱四种基本营销模式
  • 租房网站建设中国万网域名注册服务内容
  • 怎样做网站设计要交税吗百度广告推广怎么做
  • 商务网站建设与维护 ppt广州seo黑帽培训