加速你的Python

当你寻找这种问题的时候,很开心,你的代码水平以及对python的各种数据类型的认知会上升一个台阶!
我是什么时候开始思考这种问题的呢?当然是有一天发现模型跑数据的时候,程序一直在运行但却一直不出最终结果,然后发现作者写的代码真的是低效,不得不说,会写模型的人不一定会写代码!

一、加速代码查找

1. 用 set 而非 list 进行查找(初学者的通病)

低效方法:

list_data = [i for i in range(1000000)]1098987 in list_data   # 13.4 ms

高效方法:

set_data = set(list_data)1098987 in set_data   # 10.3 us

原理很简单:list 是线性查找(即从前向后一个元素一个元素的查找),set 是通过hash查找(通过hash函数直接定位)

2. 用 dict 而非两个 list 进行匹配查找

低效方法:

list_a = [i for i in range(1000000)]
list_b = [i**2 for i in list_a]print(list_b[list_a.index(876567)])  # 7.5 ms

高效方法:

dict_ab = dict(zip(list_a, list_b))print(dict_ab.get(876567, None))   # 141 us 

二、加速你的循环

在循环中避免重复计算

低速方法:

a = [i for i in range(2000)]b = [i/sum(a) for i in a]  # 32.8 ms

高效方法:

sum_a = sum(a)b = [i/sum_a for i in a]  # 266 us

三、使用多进程

可以参考我之前博文 一篇文章学习python多进程

最后最后,其实还有很多加速的方法,不过上述是我目前常用到的方式啦,想了解更多参见24式加速你的Python

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

向量空间 Vector Space -- 推荐系统

文章目录1. 算法解析2. 基于相似用户做推荐3. 基于相似歌曲做推荐4. 总结音乐App的功能越来越强大,不仅可以自己选歌听,还可以根据你听歌的口味偏好, 给你推荐可能会喜爱的音乐,有时候,推荐的还非常适合你的口味。1. 算…

一个完整的算法开发

1 配置文件: python之ini配置文:https://blog.csdn.net/zhusongziye/article/details/80024530 可参考: https://www.jianshu.com/p/4f50ce352b2f python configparser配置文件解析器使用详解: https://blog.csdn.net/weixin_421…

阿里P8架构师谈:分布式事务的解决方案,以及原理、总结

分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务各方面与大家进行介绍。 事务 1.1 什么是事务 数据库…

Tensorflow修改张量特定位置元素的值

张量和array一样可以通过切片获取,但是张量不可以直接修改某个值。 可以理解为张量具有“只读”的模式。 如果按照数组修改某个值的方式处理的话,会报错: import tensorflow as tf tensor_1 tf.constant([x for x in range(1,10)]) tensor…

美团NLP中心算法实习生内推啦!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术部门介绍搜索与NLP部是美团人工智能技术研发的核心团队,致力于打造高性能、高扩展的搜索引擎和领先的自然语言处理核心技术和服务能力,依托搜索排序,NLP(自然语…

B+树 -- MySQL数据库索引

文章目录1. 定义清楚问题2. 尝试学过的数据结构解决问题3. 改造二叉查找树来解决问题4. 总结为了加速数据库中数据的查找速度,我们常对表中数据创建索引。数据库索引是如何实现的呢?底层使用的是什么数据结构和算法呢? 1. 定义清楚问题 如何…

创建python的虚拟环境(图文教程),并使用。

创建python的虚拟环境 第一步:打开anaconda命令行,即打开anaconda prompt。 base的主环境切换到虚拟环境nlp (base) C:\Users\user>conda env list 查看环境列表 (base) C:\Users\user>conda create -n nlp python 创建一个虚拟环境&#xff0…

领域应用 | 到底什么时候使用图数据库?

本文转载自公众号:TigerGraph。图数据库作为近两年快速发展的新型数据受到了市场极大的关注。但对于很多行业而言,图数据库还是一个很新的概念,企业管理人员和技术人员面临着同样的问题:企业的业务适不适合使用图?到底…

常用的后端性能优化六种方式:缓存化+服务化+异步化等

后端优化的六种方法: 1.硬件升级 硬件问题对性能的影响不容忽视。 举一个例子:一个DB集群经常有慢SQL报警,业务排查下来发现SQL都很简单,该做的索引优化也都做了。后来DBA同学帮忙定位到问题是硬件过旧导致,将机械硬…

有钱可以多任性?OpenAI提出人肉模型训练,文本摘要全面超越人类表现!

文 | 小轶背景三个多月前,OpenAI的GPT-3在NLP界掀起轩然大波。就在上周,视金钱如粪土的OpenAI团队又在文本摘要方面推出了最新力作,全方位超越人类表现。其亮点在于:以人类偏好替代自动化评测方法(如ROUGE、BLUE&#…

数据挖掘第一次作业

我先大概写了写,还有一些读过的论文没有往上放,一些论文之间的联系线条没有搞出来。 就先这样吧!有空再搞,我现在想去玩板子啦!

A*搜索算法--游戏寻路

文章目录1. 算法解析2. 总结仙剑奇侠传这类MMRPG游戏中,有人物角色 自动寻路功能。当人物处于游戏地图中某位置时,点击另一个相对较远的位置,人物就会自动地绕过障碍物走过去。这个功能是怎么实现的呢?1. 算法解析 这是一个非常典…

requirements.txt一键安装项目所需要的的python包

pip install -r requirements.txt 后程序出错解决办法https://blog.csdn.net/muguangzhichen/article/details/100572933?depth_1- python 在安装依赖:pip install -r requirements.txt 执行命令时报错的解决办法https://blog.csdn.net/shangdi1988/article/detai…

阿里P8架构师谈:应用后端+移动端的性能优化指标,以及性能优化方法

性能优化专题 阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则 阿里P8架构师谈:Web前端、应用服务器、数据库SQL等性能优化总结 大型网站Web前端优化最佳实践,以及最全优化工具集锦 阿里P8架构师谈:多线程、架构、…

无主题

厦门月亮少 20191003 之前突然遇到个bug,解决好久无果,开始干点别的事情,大约四天后的今天,我打开程序想解决一下,然后,调试半天无果,妈妈突然微信和我聊天了,聊完以后往终端一瞥&a…

PyTorch Trick集锦

文 | z.defying知乎来源 | https://zhuanlan.zhihu.com/p/76459295前言本文整理了13则PyTorch使用的小窍门,包括了指定GPU编号、梯度裁剪、扩展单张图片维度等实用技巧,能够帮助工作者更高效地完成任务。1、指定GPU编号2、查看模型每层输出详情3、梯度裁…

python杂谈

版权 创建虚拟环境 conda create -n your_env_name python3.6.2 pip numpy matplotlib pandas sortedcontainers conda克隆虚拟环境 conda create -n your_env_name --clone old_env_list 激活这个虚拟环境 source activate your_env_name 路径书写格式 windows系统中&#xf…

论文浅尝 | 利用推理链进行视觉问题回答

论文笔记整理:吴杨,浙江大学计算机学院,知识图谱、NLP方向。http://papers.nips.cc/paper/7311-chain-of-reasoning-for-visual-question-answering.pdf动机在视觉问题回答中,较为复杂的问题经常需要多步骤的推理才能够回答&#…

索引 Index -- 快速查找数据

文章目录1. 为什么需要索引2. 索引的需求定义2.1 功能性需求2.2 非功能性需求3. 构建索引常用的数据结构4. 总结索引这种常用的技术解决思路,底层往往会依赖哪些数据结构? 1. 为什么需要索引 实际的软件开发中,它们的本质都可以抽象为“对数…

Tensorflow实现MLP

多层感知机(MLP)作为最典型的神经网络,结构简单且规则,并且在隐层设计的足够完善时,可以拟合任意连续函数。本文将利用 MLP 实现手写数字分类的任务。 结构:   784个输入层神经元 – 200个隐层神经元 –…