Python数据类型详解(整数、浮点数、复数)

Python数据类型详解(整数、浮点数、复数)

 整数类型

与数学中整数的概念一致,可正可负,没有取值范围限制。

四种进制表示形式:

十进制:正常数

二进制:以0B或0b开头

八进制:以0o或0O开头

十六进制:以0x或0X开头

**进制转换:计算机可以识别二进制,当输入为十进制为时,先将十进制转换为二进制,然后进行二进制的运算,再进行反向转换(即二进制的运算结果转换为十进制),然后输出即可。**

pow函数:pow(x,y),计算即为x的y次方,想算多大算多大。

实例一:代码界面:

运行界面:

 浮点数类型

1.与数学中实数的概念一致

带有小数点及小数的数字

浮点数取值范围和小数精度都存在限制,但常规计算可忽略(及取值范围和精度基本不限制)

取值范围数量级约-10的308次方至10的308次方,精度数量级10的-16次方。

2.浮点数间运算存在不确定尾数,不是bug。

53位二进制表示小数部分,约10的-16次方。

例如:0.1在计算机中表示

二进制是0.000011100111001101(二进制表示)无限的小数,计算机只能截取其中的53位。无限的接近0.1。

十进制的话是0.1000000000055(十进制表示)很长的一个数,只是在计算机中将浮点数在输出的时候只输出了其中的16位小数。

二进制表示小数可以无限接近十进制的小数,但不完全相同。

进制转换:计算机可以识别二进制,当输入为十进制为时,先将十进制转换为二进制,然后进行二进制的运算,再进行反向转换(即二进制的运算结果转换为十进制),然后输出即可。

实例二:例如:

代码界面:

运行界面:

上面运行过程中0.1+0.3=0.4,但也有部分浮点数在运算时有不确定尾数。

例如:

代码界面:

运行界面:

该实例中,代码运行结果并不等于0.3,而是0.3000000000004,出现了不确定尾数,这些情况存在但不是很频繁。计算机可以识别二进制,当输入为十进制为时,先将十进制转换为二进制,然后进行二进制的运算,再进行反向转换(即二进制的运算结果转换为十进制),然后输出即可。将浮点数在输出的时候只输出了其中的16位小数。二进制表示小数可以无限接近十进制的小数,但不完全相同。

可以进行如下证明过程:0.1+0.2==0.3(==为比较运算符,比较两个操作数的值是否相等,如果相等输出true,否则输出false.)

代码界面:

运行界面:

根据结果为False,了解到这两者不相同。

可以采用round函数

round(0.1+0.2,1)==0.3

代码界面:

运行界面:

根据运行结果,使用round函数,可以让0.1+0.2=0.3,

round函数

round(x,d):对x四舍五入,d是小数截取位数

浮点数间运算及比较用round()函数辅助。

不确定尾数一般发生在10的-16次方左右,round()十分有效

浮点类型可以采用科学计数法表示:

使用字母e或E作为幂的符号,以10为基数,格式如下:

<a>e<b>

代码界面:

运行界面:

即6e5即为6的10的5次方。

9.6E5=9.6*10的5次方

4.3e-3=4.3*10的-3次方

 复数类型(众多编程语言只有python有)

与数学中复数的概念一致(进行空间变换,尤其是跟复变函数相关的科学体系中最常用的一种内型)

a+bj 复数 a为实部,b为虚部

z=1.23e-4+5.6e+89j

z.read 实部

z.imag 虚部

实例三:

代码界面:

运行界面:

<think>好的,用户的问题是关于在使用pandas的read_excel函数时如何确保数据类型浮点数。我需要先回忆一下pandas读取Excel时的数据类型处理机制。 首先,pandas在读取Excel文件时会自动推断每列的数据类型,但有时候这种推断可能不符合需求。比如,如果一列包含整数浮点数,pandas可能会将其识别为整数类型,而用户可能需要强制转换为浮点数。 接下来,我需要查阅相关的参数。记得read_excel有一个dtype参数,可以指定各列的数据类型。例如,设置dtype={'列名': float}可以将特定列强制转换为浮点数。这应该是一个解决办法。 另外,引用[3]提到convert_float参数,默认是True,会将整数型的浮点数转换为整数。如果用户不希望这样,可以设置convert_float=False,这样所有数值都会保留为浮点数。这也是一个需要注意的地方。 还可能存在数据中有缺失值或者非数值数据的情况,这时候需要处理异常值,否则转换会出错。比如使用na_values参数指定哪些值应被视为缺失,或者在读取后使用astype方法转换,并结合错误处理。 此外,用户可能需要全局设置,将所有数值列保持为浮点型。这时可以通过dtype=float参数,不过要注意字符串列可能会出错,需要先筛选出数值列。 最后,应用这些方法后,用户可以通过dtypes属性检查各列的数据类型,确保转换成功。同时,提醒用户处理可能的异常情况,比如非数值数据的存在,以避免转换失败。</think>要确保使用$ \text{pandas.read\_excel()} $读取Excel时数据类型浮点数,可通过以下方法实现: ### 方法1:指定`dtype`参数 在读取时强制指定列的数据类型浮点数: ```python import pandas as pd df = pd.read_excel("data.xlsx", dtype={"数值列": float}) ``` - **优势**:精确控制单列类型 - **注意**:需提前知道列名或列索引[^2] ### 方法2:设置全局数值转换 禁用整数型浮点转换,保留原始浮点格式: ```python df = pd.read_excel("data.xlsx", convert_float=False) ``` 此时所有数值列(包括整数值)都会以$ \text{float64} $类型存储[^3] ### 方法3:后处理转换 读取后使用`astype()`强制转换: ```python df = pd.read_excel("data.xlsx") df["数值列"] = df["数值列"].astype(float) ``` ### 特殊场景处理 1. **混合类型数据**: ```python df = pd.read_excel("data.xlsx", converters={"混合列": lambda x: float(x) if x else 0.0}) ``` 2. **空值处理**: ```python df = pd.read_excel("data.xlsx", na_values=["N/A", "null"], keep_default_na=False) df = df.fillna(0.0) ``` ### 验证数据类型 通过属性检查结果: ```python print(df.dtypes) # 输出示例: # 数值列 float64 # 其他列 object ``` $$ \text{注意:Excel内部存储所有数字均为浮点数,但pandas会根据实际值进行类型推断} $$[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直再追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值