python和numpy中的数据类型比较

在编写Python代码进行类型判断时,需明确Numpy默认类型。Python中的整型与Numpy中的整型不同,Python的浮点型与Numpy的np.float64相同,但与np.float32不同,这是容易出现BUG的地方。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写python代码时,有时会用到isinstance来做类型判断, isinstance()可以判断两个类型是否相同,而且相对于type()isinstance() 会认为子类是一种父类类型,会考虑继承关系。
我们经常会将输入数据data (列表list格式) 转为numpy格式,有时在后面对data进行类型判断,这时就要明确numpy的默认类型了,并且要知道python中的整型和numpy中的整型的区别。这是一个很容易出BUG的地方。

1. python中的整型(int)和numpy中的整型(np.int, np.int64)类型是不一样的

a=np.array([1,2,3])
print('1',type(a))
print('2',a.dtype)
print('3',isinstance(a[0],int)) #判断numpy.int64是否为python的int类型;结果为False
#numpy转换其他整数类型
a=a.astype(np.int8)
print('4',a.dtype)
print('5',isinstance(a[0],int)) #判断numpy.int8是否为python的int类型;结果为False

输出结果:

1 <class 'numpy.ndarray'>
2 int64
3 False
4 int8
5 False

2. python中的浮点型(float)和numpy中的浮点型(np.float64)类型一样,但是和np.float32不一样

python中的float和np.float、np.float64都是C类型的double

a=np.array([1.0,2.0,3.0])
print('1',type(a))
print('2',a.dtype)
print('3',isinstance(a[0],float)) #判断numpy.float64是否为python的int类型;结果为True
#numpy转换其他浮点类型
a=a.astype(np.float32)
print('4',a.dtype)
print('5',isinstance(a[0],float)) #判断numpy.float32是否为python的int类型;结果为False

输出结果:

1 <class 'numpy.ndarray'>
2 float64
3 True
4 float32
5 False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值