numpy是如今数据分析领域离不开的Python第三方工具库,它和Python自带的math库中都有一些基础的数学函数,比如指数、对数、三角函数等。在需要使用这些函数的时候,到底该用numpy还是math,这个问题确实困扰了很多人。实现同样的功能,不同库中的函数,当然是要选择性能好的。

对于numpy和math的常见几个函数,我们用代码简单测试了一下性能,代码和结果如下:

(测试用Python版本为3.8.3,numpy版本为1.18.3)

1. log函数测试

N = 200000

f = 1.5

t0 = time.time()

for a in range(1, N):

np.log(a)

np.log(f)

t1 = time.time()

for a in range(1, N):

math.log(a)

math.log(f)

t2 = time.time()

print("Numpy log time: ", t1 - t0)

print("math log time: ", t2 - t1)

测试结果:

Numpy log time: 0.32114124298095703

math log time: 0.05388379096984863

经过200000次的重复计算,我们发现math库中的log函数所需时间是numpy的1/6左右,也就是说math在单数值计算的性能大概是numpy的6倍。

2. 三角函数测试

以cos作为测试案例:

f = 1.5

t0 = time.time()

for a in range(1, N):

np.cos(a)

np.cos(f)

t1 = time.time()

for a in range(1, N):

math.cos(a)

math.cos(f)

t2 = time.time()

print("\nNumpy cos time: ", t1 - t0)

print("math cos time: ", t2 - t1)

测试结果:

Numpy cos time: 0.29618000984191895

math cos time: 0.051862239837646484

依然是200000次的重复计算,math的性能是numpy的5.71倍。

3. exp函数测试

f = 1.5

d=5

t0 = time.time()

for a in range(1, N):

np.exp(d)

np.exp(f)

t1 = time.time()

for a in range(1, N):

math.exp(d)

math.exp(f)

t2 = time.time()

print("\nNumpy exp time: ", t1 - t0)

print("math exp time: ", t2 - t1)

测试结果:

Numpy exp time: 0.2932150363922119

math exp time: 0.048870086669921875

math的性能依然是numpy的6倍。

4. 平方根sqrt测试

f = 1.5

d=5

t0 = time.time()

for a in range(1, N):

np.sqrt(a)

np.sqrt(f)

t1 = time.time()

for a in range(1, N):

math.sqrt(a)

math.sqrt(f)

t2 = time.time()

print("\nNumpy sqrt time: ", t1 - t0)

print("math sqrt time: ", t2 - t1)

测试结果:

Numpy sqrt time: 0.30121898651123047

math sqrt time: 0.04785966873168945

math的性能大约是numpy的6.3倍。

对几个典型函数的测试可以看出,math的性能要明显优于numpy同等函数的功能。因此,对于单数值的计算在选择库函数的时候,应当优先选择Python自带的math库中的函数。

python中math计算平方根的函数_Python中Numpy和Math常用函数性能对比相关推荐

  1. python怎么引入os模块的函数_Python里的OS模块常用函数说明

    Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Wi ...

  2. python文件函数_Python之文件操作及常用函数

    常见全局函数: 1.dir(nameStr): 常见系统变量: 1.sys.path:一个包含Python自动搜索文件的路径或目录的列表.可使用列表的操作方法修改.增加默认搜索路径. 一.模块 1.创 ...

  3. python的应用领域和常用函数模块有哪些_Python模块导入区别与常用函数案例

    作者:Nature 出品:AI机器思维 Python中包含很多模块,每个领域的应用有关专家开发了相应的模块,必须将其导入到python中,然后才能使用.每个模块安装导入后才能引用,下面通过math模块 ...

  4. Python中numpy.linalg库常用函数

    Python中numpy.linalg库常用函数 numpy.linalg Python中numpy.linalg库常用函数 简单记录所遇到的numpy库内置函数 矩阵与向量积 ①np.linalg. ...

  5. python中math模块函数_python中math模块函数

    Python Math 函数必须import math 功能说明指令範例返回x 的反余弦math.acos(x) 返回x 的反双曲余弦math.acosh(x) 返回x 的反正弦math.asin(x ...

  6. python 连乘函数_python中如何进行连乘计算

    1.Python中连乘的代码: sum = 1; n = int(input("Please input number n:")) for i in range(1,n+1): s ...

  7. python中math函数_python中math模块函数

    函数 必须 import math 功能说明 指令 範例 返回 x 的反余弦 math.acos(x) 返回 x 的反双曲余弦 math.acosh(x) 返回 x 的反正弦 math.asin(x) ...

  8. python中如何自定义函数_Python中自定义函数的教程

    在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...

  9. python的pandas库内的函数_python 中NumPy和Pandas工具包中的函数使用笔记(方便自己查找)...

    'first' 按值在原始数据中出现的顺序排名 C.DataFrame DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值.字符串.布尔值等).DataFram ...

最新文章

  1. Java -- JDBC 学习--通过Statement进行数据库更新操作
  2. Github上如何在组织中创建代码仓库,并如何授予该组织中某个小组权限?
  3. Python初识面向对象
  4. 通用权限管理系统组件 给信息管理系统加一个初始化的功能,调用存储过程
  5. 26、Power Query-日期与时间数据处理实例(统计出某年各月各周的借书人数)
  6. pycharm如何汉化
  7. 深入浅出linux三剑客之awk必杀技一例
  8. 解决CocosCreator2.3.1使用VideoPlayer加载视频黑屏问题(修改底层代码)
  9. Unix环境下的编程,所涉及的主要c语言知识
  10. WireGuard 教程:使用 DNS-SD 进行 NAT-to-NAT 穿透
  11. 矢量文字符号文件格式设计
  12. 记一次使用screw 生成MySQL数据库文档
  13. 《强化学习周刊》第65期:Neurips2022强化学习论文推荐(5)、MIT:机器狗当守门员、具身智能与机器人研讨会...
  14. Outlook2007 打不开EXCEL?
  15. 老说程序员如何看产品经理,今天说说产品经理讨厌哪些程序员
  16. 市面上最适合跑步用的耳机有哪些、分享五款最优秀的跑步耳机
  17. 11 高可用的网站架构
  18. python从txt导入数据到CSV文件末尾行丢失
  19. python读取excel数据并进行数据可视化_用Python处理Excel的数据,并将之可视化
  20. 目标检测FPN(Feature Pyramid Networks)的使用

热门文章

  1. 玩树梅派学linux-shell编程
  2. 适龄人群接种率不足1%,专家呼吁尽快将HPV疫苗纳入免疫规划
  3. Object转map方法
  4. 【pgsql存储过程导致的死锁】
  5. 网络舆情监控平台用TOOM,网络舆情监控记录表?
  6. 基于SSM的海外代购系统设计与实现
  7. uclibc、eglibc、glibc、Musl-libc之间的区别和联系
  8. 大数据面试 逻辑题
  9. html中插入gif的代码,JavaScript插入动态样式实现代码
  10. 2022/9/14(cf·div3#820)https://codeforces.com/contest/1729