将数值型计算“一网打尽”——(1)
本文作者:钱梦璇
文字编辑:宁刘莹
技术总编:张 邯
爬虫俱乐部将于2019年8月22日至28日在湖北武汉举行为期一周的Stata编程技术定制培训,此次培训采用Stata16进行讲解,采取初级班和高级班分批次培训。课程通过案例教学模式,旨在帮助大家在短期内掌握Stata软件编程、金融计量知识和实证分析方法,使大家熟悉Stata核心的爬虫技术,以及Stata与其他软件交互的高端技术。目前正在火热招生中~
详细培训大纲及报名方式,请点击文末阅读原文呦~
在之前的推文中,我们已经介绍了Python的内置数值型变量类型,关于它们的运算做了简单地讲解,本篇文章将总结关于数值型变量的计算方法,包括最基本的运算符和常用的内置函数,这些方法可以帮助我们完成日常使用中最基本的运算。
一、数值型算术运算符
数值型变量的运算符有以下几种:“+,-,*,/,**,//,%”,其中,四则运算符“+,-,*,/”分别代表加、减、乘、除;“**”代表次方运算,“//,%”分别代表除法取整和除法取余。
In [1]: a=36/(2*5+3-4) #按照四则运算法则计算
b=a**2+3 #a的2次方加3
c=b//3 #b除以3的商
d=c%4 #c除以4的余数
print(a,b,c,d)
Out[1]:4.0 19.0 6.0 2.0
二、常用内置函数
1. abs( )函数
abs(x)函数返回数字x的绝对值,参数可以是整数、浮点数和复数。
(1)当参数为整数
In [2]: abs(66)
Out[2]: 66
(2)当参数为浮点数
In [3]: abs(-5.7)
Out[3]: 5.7
(3)当参数为复数,返回复数的模(指复数的实部与虚部的平方和的算术平方根)
In [4]: abs(2+4j)
Out[4]: 4.47213595499958
2. divmod( )函数
divmod(a,b)函数将除数与余数运算结果结合起来,返回一个包含商和余数的元组(a//b,a%b)。divmod函数只能接受整数或浮点数类型的参数。
(1)当参数为整数
In [5]: divmod(9,3)
Out[5]: (3, 0)
(2)当参数为浮点数
In [6]: divmod(3.4,2)
Out[6]: (1.0, 1.4)
In [7]: divmod(2.3,0.2)
Out[7]: (11.0, 0.0999999999999997)
3. pow( )函数
pow(x,y[,z])函数有两个必需参数x,y和一个可选参数z,结果返回x的y次幂乘(相当于x**y)。如果传入可选参数z,则返回幂乘之后再对z取模(相当于pow(x,y)%z)。
简单情况:
In [8]: pow(10,-2)
Out[8]: 0.01
当传入可选参数z时,所有的参数必须是整数,且参数y不能是负数。
In [19]: pow(2,3.3,3) #参数不全是整数
TypeError: pow() 3rd argument not allowed unless all arguments are integers
In [10]: pow(2,-3,3) #参数y是负数
ValueError: pow() 2nd argument cannot be negative when 3rd argument specified
In [11]: pow(-2,3,3) #参数都为整数,且参数y不是负数
Out[11]: 1
这里需要注意的是,可能有些读者曾经了解过C++和JavaScript,在C++、JavaScript等语言中,由于计算商的方法不同(取模运算在取商时向负无穷方向舍入,取余运算在取商值时向0方向舍入),取模运算和取余运算得到的结果在商为负数的时候会产生不同的结果,但在Python中,不再对二者进行区分,统一按照向0方向舍入的原则进行计算。
4.round( )函数
round(number[,ndigits])函数用于对浮点数进行四舍五入求值,根据传入的参数ndigits来控制保留几位小数。当不传入参数ndigits时,以默认保留0位小数进行四舍五入,此时返回的是整数型。当传入参数ndigits为0时,与不传入参数一样保留0位小数进行取整,但返回的值是浮点型。
In [12]: round(3.141592) #不传入参数,默认保留0位小数
Out[12]: 3
In [13]: round(3.141592,3) #传入参数为3
Out[13]: 3.142
In [14]: round(3.141592,0) #传入参数为0,返回浮点型
Out[14]: 3.0
当传入参数ndigits小于0时,对浮点数的整数部分的后几位进行四舍五入且小数部分全部清0,返回类型是浮点数。如果传入的浮点数的整数部分位数小于参数ndigits的绝对值,则返回0.0。
In [15]: round(521.1314,-1) #传入参数小于0
Out[15]: 520.0
In [16]: round(521.1314,-2)
Out[16]: 500.0
In [17]: round(521.1314,-5)#521.1314的整数部分位数小于参数-5的绝对值
Out[17]: 0.0
需要注意的是,用round()函数进行四舍五入时遵循靠0原则,对0.5和-0.5进行四舍五入,返回的都是0:
In [18]: round(0.5)
Out[18]: 0
In [19]: round(-0.5)
Out[19]: 0
对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!
往期推文推荐
万般进制千机变,Python一计乾坤定——利用Python来进行进制转换
关于我们
微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。