带你了解Python妙开根号的三种方式

 更新时间:2022年01月19日 09:07:28   作者:TUSTer_  
这篇文章主要为大家介绍了Python妙开根号的三种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

前言:

大家好啊!又是我TUSTer_!  python里有自带的库math,cmath,和函数pow来开根号。下边让我带你了解他们吧!记得一键三连!

一,math库

使用math库里的sqr()函数,在math库里边有很多数学函数,如三角函数sin(),pi-π等等:

import math
print(math.sqr(4))
输出结果:2Epsilon = 10e-16
def fab_h(x):
    '''
    求实数的绝对值
    :param x: R
    '''
    if x >= 0:
        return x
    else:
        return x * -1
def sqrt_h(x, n=2.0):
    '''
    n倍根号下x
    牛顿迭代法
    '''
    val = x
    last = 0.0
    if n == 2.0:
        while (fab_h(val - last) > Epsilon):
            last = val
            val = (val + x / val) / 2
        return val
    while (fab_h(val - last) > Epsilon):
        last = val
        val = ((n-1)*val + x / val**(n-1)) / n
    return val

二,cmath库

cmath多用于复数负数的开平方。

# importing cmath library 
import cmath 
# using cmath.sqrt() method 
gfg = cmath.sqrt(3) 
print(gfg)

输出:

(1.7320508075688772+0j)

三,pow()函数

pow(x,y)的意思是返回x的y次方,如pow(x,2)就是返回x的平方,就是x^2,

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math   # 导入 math 模块
print "math.pow(100, 2) : ", math.pow(100, 2)
# 使用内置,查看输出结果区别
print "pow(100, 2) : ", pow(100, 2)
print "math.pow(100, -2) : ", math.pow(100, -2)
print "math.pow(2, 4) : ", math.pow(2, 4)

输出:

math.pow(100, 2) :  10000.0
pow(100, 2) :  10000
math.pow(100, -2) :  0.0001
math.pow(2, 4) :  16.0
math.pow(3, 0) :  1.0

python不同开根号速度对比

import time
import math
import numpy as np
def timeit1():
    s = time.time()
    for i in range(750000):
        z=i**.5
    print ("Took %f seconds" % (time.time() - s))
def timeit2(arg=math.sqrt):
    s = time.time()
    for i in range(750000):
        z=arg(i)
    print ("Took %f seconds" % (time.time() - s))
def timeit3(arg=np.sqrt):
    s = time.time()
    for i in range(750000):
        z=arg(i)
    print ("Took %f seconds" % (time.time() - s))
def timeit4():
    s = time.time()
    for i in range(750000):
        z=math.pow(i,.5)
    print ("Took %f seconds" % (time.time() - s))
timeit1()
timeit2()
timeit3()
timeit4()

Took 0.152364 seconds
Took 0.061580 seconds
Took 1.016529 seconds
Took 0.215403 seconds

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Pytorch中的自动求梯度机制和Variable类实例

    Pytorch中的自动求梯度机制和Variable类实例

    今天小编就为大家分享一篇Pytorch中的自动求梯度机制和Variable类实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 解决Python中导入自己写的类,被划红线,但不影响执行的问题

    解决Python中导入自己写的类,被划红线,但不影响执行的问题

    这篇文章主要介绍了解决Python中导入自己写的类,被划红线,但不影响执行的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • PHP网页抓取之抓取百度贴吧邮箱数据代码分享

    PHP网页抓取之抓取百度贴吧邮箱数据代码分享

    本文给大家介绍PHP网页抓取之抓取百度贴吧邮箱数据代码分享,程序实现了一键抓取帖子全部邮箱和分页抓取邮箱两个功能,感兴趣的朋友一起学习吧
    2016-04-04
  • python创建和删除目录的方法

    python创建和删除目录的方法

    这篇文章主要介绍了python创建和删除目录的方法,涉及Python操作目录的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • python自动化实现登录获取图片验证码功能

    python自动化实现登录获取图片验证码功能

    这篇文章主要介绍了python自动化实现登录获取图片验证码功能,本文通过实例截图的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Python log模块logging记录打印用法解析

    Python log模块logging记录打印用法解析

    这篇文章主要介绍了Python log模块logging记录打印用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Python FFT合成波形的实例

    Python FFT合成波形的实例

    今天小编大家分享一篇Python FFT合成波形的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python使用requests提交HTTP表单的方法

    Python使用requests提交HTTP表单的方法

    今天小编就为大家分享一篇Python使用requests提交HTTP表单的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python安装xarray库读取.nc文件的详细步骤

    Python安装xarray库读取.nc文件的详细步骤

    大家应该都知道库xarray可以帮我们读取出nc文件的内容,所以下面这篇文章主要给大家介绍了关于Python安装xarray读取.nc文件的详细步骤,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 如何高效使用Python字典的方法详解

    如何高效使用Python字典的方法详解

    Dictionary 是 Python 的内置数据类型之一,它定义了键和值之间一对一的关系。下面这篇文章主要给大家介绍了关于如何高效使用Python字典的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08

最新评论