Python中数字类型相关函数介绍
Python中有三种数字类型:int
、float
、complex
一、数字类型变量定义
变量定义:
x = 10 # int类型
y = 2.2 # float类型
z = 1 + 2j # complex类型
二、查看变量类型
type()
函数用来查看对象的类型。
x = 10 # int类型
y = 2.2 # float类型
z = 1 + 2j # complex类型print(type(x))
print(type(y))
print(type(z))
# 结果:
# <class 'int'>
# <class 'float'>
# <class 'complex'>
三、类型转换
可以使用int()
、float()
、complex()
函数从一种类型转换为另一种类型:
x = 10 # int类型
y = 2.2 # float类型
z = 1 + 2j # complex类型a = float(x)
b = complex(y)
c = int(y)print(a, type(a))
print(b, type(b))
print(c, type(c))
# 结果:
# 10.0 <class 'float'>
# (2.2+0j) <class 'complex'>
# 2 <class 'int'>
- 注意:
complex
类型不能通过int()
和float()
函数转换为int
类型和float()
类型。
四、random
随机数函数
1、random()
返回[0.0, 1.0)
范围内的下一个随机浮点数。
import randomn = random.random()
print(n)
# 结果:0.4276161736172195
2、uniform(a, b)
返回一个随机浮点数N
,当a <= b
时a <= N <= b
,当b < a
时b <= N <= a
。
import randomm = random.uniform(1, 2)
print(m)# 结果:1.4863027623849199
五、round(number, ndigits=None)
函数
返回number
舍入到小数点后ndigits
位精度的值。 如果 ndigits
被省略或为None
,则返回最接近输入值的整数。
对于支持round()
方法的内置类型,结果值会舍入至最接近的10
的负ndigits
次幂的倍数;如果与两个倍数同样接近,则选用偶数。因此,round(0.5)
和round(-0.5)
均得出 0 而round(1.5)
则为2
。ndigits
可为任意整数值(正数、零或负数)。如果省略了ndigits
或为None
,则返回值将为整数。否则返回值与number
的类型相同。
对于一般的Python
对象number
, round
将委托给number.__round__
。
m = 3.1415926
print(round(m))
print(round(m, 3))
# 结果:
# 3
# 3.142
对浮点数执行round()
的行为可能会令人惊讶:例如,round(2.675, 2)
将给出2.67
而不是期望的2.68
。 这不算是程序错误:这一结果是由于大多数十进制小数实际上都不能以浮点数精确地表示。
五、math
数学函数
1、ceil(x)
返回x
的向上取整,即大于或等于x
的最小的整数。
from math import ceiln = ceil(5.2)
m = ceil(5.6)
print(n, m)# 结果:6 6
2、floor(x)
返回x
的向下取整,小于或等于x
的最大整数。
from math import floorn = floor(5.2)
m = floor(5.6)
print(n, m)# 结果:5 5
3、fabs(x)
返回x
的绝对值。
from math import fabsn = fabs(-5)
print(n)# 结果:5.0
4、gcd(*integers)
返回给定的整数参数的最大公约数。 如果有一个参数非零,则返回值将是能同时整除所有参数的最大正整数。 如果所有参数为零,则返回值为0
。 不带参数的gcd()
返回0
。
from math import gcdn = gcd(24, 36)
m = gcd(64, 84, 96)
print(n, m)
# 结果:12 4
5、lcm(*integers)
返回给定的整数参数的最小公倍数。 如果所有参数均非零,则返回值将是为所有参数的整数倍的最小正整数。 如果参数之一为零,则返回值为0
。 不带参数的lcm()
返回1
。
from math import lcmn = lcm(9, 12)
print(n)
# 结果:36
6、isqrt(n)
返回非负整数n
的整数平方根。 这就是对n
的实际平方根向下取整,或者相当于使得a² ≤ n
的最大整数a
。
from math import isqrtn = isqrt(9)
print(n)
# 结果:3
7、modf(x)
返回x
的小数和整数部分。两个结果都带有x
的符号并且是浮点数。
from math import modfn = modf(5.6)
print(n)
# 结果:(0.5999999999999996, 5.0)
结果小数部分为0.5999999999999996
,而非0.6
,是因为浮点数运算存在不确定尾数。
8、trunc(x)
返回去除小数部分的x
,只留下整数部分。trunc()
对于正的x
相当于floor()
,对于负的x
相当于ceil()
。
from math import truncn = trunc(6.6)
print(n)
# 结果:6
9、幂函数与对数函数
1、cbrt(x)
返回x
的立方根。
from math import cbrtn = cbrt(8)
print(n)
# 结果:2.0
2、exp(x)
返回e
的x
次方,其中e = 2.718281...
是自然对数的基数。
from math import expn = exp(1)
m = exp(0)
print(n, m)
# 结果:2.718281828459045 1.0
3、exp2(x)
返回2
的x
次方。
from math import exp2n = exp2(1)
m = exp2(0)
print(n, m)
# 结果:2.0 1.0
4、expm1(x)
返回e
的x
次方减1。这里 e 是自然对数的基数。
from math import expm1n = expm1(1)
m = expm1(0)
print(n, m)
# 结果:1.718281828459045 0.0
5、log(x[,base])
使用一个参数,返回x
的自然对数(底为e
)。
使用两个参数,返回给定的base
的对数x
,计算为 log(x)/log(base)
。
from math import logn = log(1)
m = log(8, 2)
print(n, m)
# 结果:0.0 3.0
6、log2(x)
返回x
以2
为底的对数。这通常比log(x,2)
更准确。
from math import log2n = log2(8)
print(n)
# 结果:3.0
6、log10(x)
返回x
以10
为底的对数。这通常比log(x,10)
更准确。
from math import log10n = log10(100)
print(n)
# 结果:2.0
6、pow(x, y)
返回x
的y
次方。
from math import pown = pow(2, 3)
print(n)
# 结果:8.0
7、sqrt(x)
返回x
的平方根。
from math import sqrtn = sqrt(9)
print(n)
# 结果:3.0
10、三角函数
1、sin(x)
返回x
弧度的正弦值。
from math import sin, pin = sin(pi/6)
print(n)
# 结果:0.49999999999999994
pi
为math
模块的常量,pi = π
。
2、cos(x)
返回x
弧度的余弦值。
from math import cos, pin = cos(pi / 3)
print(n)
# 结果:0.5000000000000001
3、tan(x)
返回x
弧度的正切值。
from math import tan, pin = tan(pi/4)
print(n)
# 结果:0.9999999999999999
4、asin(x)
返回以弧度为单位的x
的反正弦值。 结果范围在-pi/2
到pi/2
之间。
from math import asinn = asin(0.5)
print(n)
# 结果:0.5235987755982989
# π/6 = 0.5235987755982989
5、acos(x)
返回以弧度为单位x
的反余弦值。 结果范围在0
到pi
之间,pi =π
。
from math import acosn = acos(0.5)
print(n)
# 结果:1.0471975511965979
# π/3 = 1.0471975511965977
6、atan(x)
返回以弧度为单位的x
的反正切值。 结果范围在-pi/2
到pi/2
之间。
from math import atann = atan(1)
print(n)
# 结果:0.7853981633974483
# π/4 = 0.7853981633974483
7、atan2(y, x)
以弧度为单位返回atan(y / x)
。结果是在-pi
和pi
之间。从原点到点(x, y)
的平面矢量使该角度与正X轴成正比。atan2()
的点的两个输入的符号都是已知的,因此它可以计算角度的正确象限。 例如,atan(1)
和atan2(1, 1)
都是pi/4
,但atan2(-1, -1)
是-3*pi/4
。
from math import atan2n = atan2(1, 1)
print(n)
# 结果:0.7853981633974483
# π/4 = 0.7853981633974483
8、degrees(x)
将角度x
从弧度转换为度数。
from math import degrees, pin = degrees(pi/2)
print(n)
# 结果:90.0
9、radians(x)
将角度x
从度数转换为弧度。
from math import radiansn = radians(180)
print(n)
# 结果:3.141592653589793
11、双曲函数
1、sinh(x)
返回x
的双曲正弦值。
from math import sinhn = sinh(0)
print(n)
# 结果:0
2、cosh(x)
返回x
的双曲余弦值。
from math import coshn = cosh(0)
print(n)
# 结果:1.0
3、tanh(x)
返回x
的双曲正切值。
from math import tanhn = tanh(0)
print(n)
# 结果:0.0
4、asinh(x)
返回x
的反双曲正弦值。
from math import asinhn = asinh(1)
print(n)
# 结果:0.881373587019543
5、acosh(x)
返回x
的反双曲余弦值。
from math import acoshn = acosh(1)
print(n)
# 结果:0.0
6、atanh(x)
返回x
的反双曲正切值。
from math import atanhn = atanh(0)
print(n)
# 结果:0.0
六、statistics
数学统计函数
1、mean(data)
返回data
的样本算术平均数,形式为序列或迭代器。若data
为空,将会引发StatisticsError
。
from statistics import meann = mean([2, 3, 4, 5, 6, 7])
print(n)
# 结果:4.5
2、fmean(data, weights=None)
将data
转换成浮点数并且计算算术平均数。
此函数的运行速度比mean()
函数快并且它总是返回一个float
。data
可以为序列或可迭代对象。 如果输入数据集为空,则会引发StatisticsError
。
from statistics import fmeann = fmean([2, 3, 4])
print(n)
# 结果:3.0
支持可选权重weights
。例如,教授通过测验的权重为20%
,家庭作业的权重为20%
,期中考试的权重为30%
,期末考试的权重为30%
来分配课程的成绩:
from statistics import fmeangrades = [85, 92, 83, 91]
weights = [0.20, 0.20, 0.30, 0.30]
n = fmean(grades, weights)
print(n)
# 结果:87.6
如果提供了权重,则权重必须与数据长度相同,否则将引发ValueError
。
3、geometric_mean(data)
将data
转换成浮点数并且计算几何平均数。
几何平均值使用值的乘积表示data
的中心趋势或典型值(与使用它们的总和的算术平均值相反)。
如果输入数据集为空、包含零或包含负值则将引发StatisticsError
。data
可以是序列或可迭代对象。
from statistics import geometric_meandata = [54, 24, 36]
n = geometric_mean(data)
print(n)
# 结果:36.000000000000014
4、harmonic_mean(data, weights=None)
返回包含实数值的序列或可迭代对象data
的调和平均数。 如果weights
被省略或为None
,则会假定权重相等。
调和平均数是数据的倒数的算术平均值mean()
的倒数。 例如,三个数值a
,b
和c
的调和平均数将等于3/(1/a + 1/b + 1/c)
。 如果其中一个值为零,则结果也将为零。
调和平均数是均值的一种,是对数据的中心位置的度量。 它通常适用于求比率和比例(如速度)的均值。
假设一辆车在40km/h
的速度下行驶了10km
,然后又以60km/h
的速度行驶了10 km
。车辆的平均速率是多少?\
from statistics import harmonic_meandata = [40, 60]
n = harmonic_mean(data)
print(n)
# 结果:48.0
假设一辆汽车以速度40
公里/小时行驶了5
公里,当道路变得畅通后,提速到60
公里/小时行驶了行程中剩余的30 km
。 请问其平均速度是多少?
from statistics import harmonic_meandata = [40, 60]
weights = [5, 30]
n = harmonic_mean(data, weights)
print(n)
# 结果:56.0
如果data
为空、任意元素小于零,或者加权汇总值不为正数则会引发StatisticsError
。
5、median(data)
使用普通的“取中间两数平均值”方法返回数值数据的中位数(中间值)。 如果data
为空,则将引发StatisticsError
。 data 可以是序列或可迭代对象。
中位数是衡量中间位置的可靠方式,并且较少受到极端值的影响。 当数据点的总数为奇数时,将返回中间数据点:
from statistics import mediandata = [1, 3, 5]
n = median(data)
print(n)
# 结果:3
当数据点的总数为偶数时,中位数将通过对两个中间值求平均进行插值得出:
from statistics import mediandata = [1, 3, 5, 7]
n = median(data)
print(n)
# 结果:4.0
6、median_low(data)
返回数值数据的低中位数。 如果data
为空则将引发StatisticsError
。 data 可以是序列或可迭代对象。
低中位数一定是数据集的成员。 当数据点总数为奇数时,将返回中间值。 当其为偶数时,将返回两个中间值中较小的那个。
from statistics import median_lowdata0 = [1, 3, 5]
data1 = [1, 3, 5, 7]
n = median_low(data0)
m = median_low(data1)
print(n)
print(m)
# 结果:
# 3
# 3
当你的数据是离散的,并且你希望中位数是一个实际数据点而非插值结果时可以使用低中位数。
7、median_high(data)
返回数据的高中位数。 如果data
为空则将引发StatisticsError
。data
可以是序列或可迭代对象。
高中位数一定是数据集的成员。 当数据点总数为奇数时,将返回中间值。 当其为偶数时,将返回两个中间值中较大的那个。
from statistics import median_highdata0 = [1, 3, 5]
data1 = [1, 3, 5, 7]
n = median_high(data0)
m = median_high(data1)
print(n)
print(m)
# 结果:
# 3
# 5
当你的数据是离散的,并且你希望中位数是一个实际数据点而非插值结果时可以使用高中位数。
8、median_grouped(data, interval=1)
返回分组的连续数据的中位数,根据第50
个百分点的位置使用插值来计算。 如果data
为空则将引发StatisticsError
。data
可以是序列或可迭代对象。
from statistics import median_groupeddata = [52, 52, 53, 54]
n = median_grouped(data)
print(n)
# 结果:52.5
在下面的示例中,数据已经过舍入,这样每个值都代表数据分类的中间点,例如1
是0.5--1.5
分类的中间点,2
是1.5--2.5
分类的中间点,3
是2.5--3.5
的中间点等待。 根据给定的数据,中间值应落在3.5--4.5
分类之内,并可使用插值法来进行估算:
from statistics import median_groupeddata = [1, 2, 2, 3, 4, 4, 4, 4, 4, 5]
n = median_grouped(data)
print(n)
# 结果:3.7
可选参数interval
表示分类间隔,默认值为1
。 改变分类间隔自然会改变插件结果:
from statistics import median_groupeddata = [1, 3, 3, 5, 7]
n = median_grouped(data, interval=1)
m = median_grouped(data, interval=2)
print(n)
print(m)
# 结果:
# 3.25
# 3.5
9、mode(data)
从离散或标称的data
返回单个出现最多的数据点。 此众数(如果存在)是最典型的值,并可用来度量中心的位置。
如果存在具有相同频率的多个众数,则返回在 data 中遇到的第一个。 如果想要其中最小或最大的一个,请使用min(multimode(data))
或max(multimode(data))
。 如果输入的data
为空,则会引发StatisticsError
。mode
将假定是离散数据并返回一个单一的值。
from statistics import modedata = [1, 1, 2, 3, 3, 3, 3, 4]
n = mode(data)
print(n)
# 结果:3
此众数的独特之处在于它是这个包中唯一还可应用于标称(非数字)数据的统计信息:
from statistics import modedata = ["red", "blue", "blue", "red", "green", "red", "red"]
n = mode(data)
print(n)
# 结果:red
10、multimode(data)
返回最频繁出现的值的列表,并按它们在data
中首次出现的位置排序。 如果存在多个众数则将返回一个以上的众数,或者如果data
为空则将返回空列表:
from statistics import multimodedata = 'aabbbbccddddeeffffgg'
n = multimode(data)
print(n)
# 结果:['b', 'd', 'f']
11、pvariance(data, mu=None)
返回非空序列或包含实数值的可迭代对象data
的总体方差。 方差或称相对于均值的二阶距,是对数据变化幅度(延展度或分散度)的度量。 方差值较大表明数据的散布范围较大;方差值较小表明它紧密聚集于均值附近。如果给出了可选的第二个参数mu
,它通常是data
的均值。 它也可以被用来计算相对于一个非均值点的二阶距。 如果该参数省略或为None
(默认值),则会自动进行算术均值的计算。使用此函数可根据所有数值来计算方差。 要根据一个样本来估算方差,通常 variance()
函数是更好的选择。如果data
为空则会引发 StatisticsError。
from statistics import pvariancedata = [0.0, 0.25, 0.25, 1.25, 1.5, 1.75, 2.75, 3.25]
n = pvariance(data)
print(n)
# 结果:1.25
如果你已经计算过数据的平均值,你可以将其作为可选的第二个参数mu
传入以避免重复计算:
from statistics import pvariance, meandata = [0.0, 0.25, 0.25, 1.25, 1.5, 1.75, 2.75, 3.25]
mu = mean(data)
n = pvariance(data, mu)
print(n)
# 结果:1.25
12、pstdev(data, mu=None)
返回总体标准差(总体方差的平方根)。 请参阅pvariance()
了解参数和其他细节。
from statistics import pstdevdata = [1.5, 2.5, 2.5, 2.75, 3.25, 4.75]
n = pstdev(data)
print(n)
# 结果:0.986893273527251
13、variance(data, xbar=None)
返回包含至少两个实数值的可迭代对象data
的样本方差。 方差或称相对于均值的二阶矩,是对数据变化幅度(延展度或分散度)的度量。 方差值较大表明数据的散布范围较大;方差值较小表明它紧密聚集于均值附近。
如果给出了可选的第二个参数xbar
,它应当是data
的均值。 如果该参数省略或为None
(默认值),则会自动进行均值的计算。
当你的数据是总体数据的样本时请使用此函数。 要根据整个总体数据来计算方差,请参见pvariance()
。如果data
包含的值少于两个则会引发StatisticsError
。
from statistics import variancedata = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]
n = variance(data)
print(n)
# 结果:1.3720238095238095
如果你已经计算过数据的平均值,你可以将其作为可选的第二个参数xbar
传入以避免重复计算:
from statistics import variance, meandata = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]
xbar = mean(data)
n = variance(data, xbar)
print(n)
# 结果:1.3720238095238095
Python中数字类型相关函数介绍相关推荐
- python中数字类型与处理工具
python中的数字类型工具 python中为更高级的工作提供很多高级数字编程支持和对象,其中数字类型的完整工具包括: 1.整数与浮点型, 2.复数, 3.固定精度十进制数, 4.有理分数, 5.集合 ...
- python中数字类型以及进制转换
数字型: 1.int 整数 2.float 浮点 3.complex 复数 bool类型: True == 1 False == 0 二进制: 函数:bin 写法:以0b开头 例如:bin(192) ...
- 关于python浮点数类型错误的是_关于Python的数字类型,以下选项中描述错误的是...
[单选题]以下程序的输出结果是: lcat =["狮子","猎豹","虎猫","花豹","孟加拉虎" ...
- 关于python浮点数类型错误的是_关于 Python 的数字类型,以下选项中描述错误的是( )...
关于 Python 的数字类型,以下选项中描述错误的是( ) 答:浮点数也有十进制.二进制.八进制和十六进制等表示方式 学业成就女性不亚于男性,而在事业成就女子表现如何? 答:明显落后于男子 对于间壁 ...
- Python中的顺序表介绍
Python中的顺序表介绍 在 Python 中,列表是一种基本的数据类型,列表的数据组成了一个序列,序列里的数据是有序的(索引),可以快速地找到指定的数据. 在开发中,经常需要将一组数据作为一个整体 ...
- 数字图像处理——实验一 Python中数字图像处理的基本操作
数字图像处理--实验一 Python中数字图像处理的基本操作 一.实验目的 二.实验主要仪器设备 三.实验原理 3.1 数字图像的表示和类别 3.2 opencv-python图像文件格式 四.实验内 ...
- python提供数字类型包括_Python 语言提供的 3 个基本数字类型是( )_学小易找答案...
[论述题]请以<我的爸爸妈妈>为题,写一篇作文,向大家介绍自己的爸爸和妈妈. [单选题]初孕妇,妊娠34周,血液检查中下列描述不符合正常妊娠生理特点的是( ) [填空题]汽缸垫的作用是保证 ...
- 全面理解Python中的类型提示(Type Hints)
众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...
- php的strpos不支持数字,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...
php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创 这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来! PHP 开源脚本语言 PHP(外文名: Hypertext Prep ...
最新文章
- Spring Boot 定义接口的方法是否可以声明为 private?
- 教你用netstat-实践案例
- 每日一皮:老大爷,您保持年轻的秘诀是什么
- luogu1514 [NOIp2010]引水入城 (bfs+记忆化搜索)
- 以太坊Oracle系列一: Human Oracle
- 如何利用数据分析找到女朋友?
- c语言中scanf输入判断,无法判断某一个输入的字符?scanf()
- C#调用C++编写的COM DLL
- 适配器模式的极简概述
- Linux Ubuntu从零开始部署web环境及项目 -----部署项目 (三)
- android计算器括号,计算器(一)——加减和括号
- Linux自学之旅-基础命令(write用户之间发送信息命令)
- Latex表格内容自动换行
- 《合约星期五》OKEx BTC季度合约 0726周报
- Linux定时任务配置
- java学习(二)——类与对象
- 贵州杰赛s65机顶盒子CPU S905M-B 刷机教程及纯尽版固件
- 钉钉RC版H5页面调试
- 腾讯音乐娱乐集团与华纳音乐续签长期战略协议 并将联合成立全新音乐厂牌
- c语言 指针 字符串 回文 strcmp,【查找字符串面试题】面试问题:C语言指针题集… - 看准网...
热门文章
- 滴滴在职iOS开发者,告诉你他是如何实现指数级提升开发技术的?
- 新思路计算机二级教育机构排行,新思路教育·
- shell中until使用
- test.ctf8(XSS挑战之旅)解题记录
- 小觅智能 | OKVIS 学习笔记
- uniapp中NFC功能的实现
- 深度学习 + 众包重现历史街景,在线体验“时间旅行”
- 计算机管理员不受限制访问,Win10专业版管理员账户被禁用怎么办?
- IK分词器 IKAnalyzer 简单demo
- 股权众筹鼻祖 Naval Ravikant 发表 36 条对于区块链乃至整个世界的思考