python提高计算速度的几种方法---学习笔记26

简介: python提高计算速度的几种方法---学习笔记26

原版方法:

loops=25000000
from math import*
a=range(1,loops)
def f(x):
    return 3*cos(x)+4*sin(x)**2
%timeit r=(f(x) for x in a)

效率:

1000000 loops, best of 3: 552 ns per loop

改进方法1、使用数组

import numpy as np
a = np.arange(1, loops)
%timeit r = 3 * np.cos(a) + np.sin(a)** 2

效率:

1 loop, best of 3: 3.87 s per loop

改进方法2、数字表达专用库

import numexpr as ne
ne.set_num_threads(1)
f = '3 * log(a) + cos(a) **2'
%timeit r = ne.evaluate(f)

效率:

1 loop, best of 3: 2.15 s per loop

改进方法3、多线程

ne.set_num_threads(4)
%timeit r = ne.evaluate(f)

效率:

1 loop, best of 3: 1.14 s per loop

###########################################################

可以看得到,python的计算效率是有方法提高的。当面临效率问题的时候,可以采用某种适当的方法提高相应的效率



目录
相关文章
|
1天前
|
SQL 关系型数据库 数据库连接
使用 Python 访问数据库的基本方法
【5月更文挑战第12天】在Python中操作数据库涉及安装数据库驱动(如mysql-connector-python, psycopg2, pymongo)、连接数据库、执行查询/更新、处理结果集及关闭连接。使用ORM(如SQLAlchemy)可简化操作。通过上下文管理器(with语句)能更好地管理资源和错误。注意根据实际需求处理事务、错误和安全性,例如使用SSL连接。
11 2
|
2天前
|
Python
【Python进阶(二)】——程序调试方法
【Python进阶(二)】——程序调试方法
|
4天前
|
存储 Linux Shell
python移除/删除非空文件夹/目录的最有效方法是什么?
python移除/删除非空文件夹/目录的最有效方法是什么?
8 0
|
6天前
|
Python
【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
【5月更文挑战第6天】【Python 基础】Python中的实例方法、静态方法和类方法有什么区别?
|
6天前
|
数据处理 Python
Python中每个字段增加多条数据的高效方法
Python中每个字段增加多条数据的高效方法
13 1
|
7天前
|
存储 数据挖掘 Python
Python技术分享:实现选择文件或目录路径的方法
Python技术分享:实现选择文件或目录路径的方法
17 2
|
7天前
|
数据处理 Python
Python中按指定数量分割列表字符串的方法
Python中按指定数量分割列表字符串的方法
9 1
|
7天前
|
安全 数据安全/隐私保护 Python
Python的整型在计算中具有以下优势
Python整型提供任意精度整数计算,无溢出风险;支持多种算术运算,操作简便;作为不可变类型保证数据安全;能进行高级数学运算,并有NumPy等库加持,适合数值分析和科学计算。
16 0
|
7天前
|
Python
Python的整型在计算中的精度可以通过使用二进制或十进制表示来体现
Python整型支持十、二、八、十六进制表示,其中十进制默认,二进制(0b前缀)、八进制(0o前缀)、十六进制(0x前缀)。计算时以二进制精度处理,确保结果准确。例如:123的二进制是0b1111011,八进制是0o173,十六进制是0x7b。
11 0
|
11天前
|
Python
使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序
使用Python pandas的sort_values()方法可按一个或多个列对DataFrame排序。示例代码展示了如何按'Name'和'Age'列排序 DataFrame。先按'Name'排序,再按'Age'排序。sort_values()的by参数接受列名列表,ascending参数控制排序顺序(默认升序),inplace参数决定是否直接修改原DataFrame。
23 1