【numpy学习 02】数据类型

本文介绍了numpy中的数据类型,包括常见的bool_、int_、float_、str_等,并通过示例展示了如何创建不同的数据类型,如int8、int16、float16等。此外,还探讨了numpy数据类型与Python原生类型的区别,特别是浮点数和整数的差异,如int16、int32、float16和float32的信息。
摘要由CSDN通过智能技术生成

1、常见数据类型

Python 原生的数据类型相对较少,** bool、int、float、str**等。科学计算中要求较高,为了加以区分 numpy 在这些类型名称末尾都加了“_”。

常见数据类型

2、创建数据类型

numpy的数值类型实际是dtype对象的实例

#源码dtype
class dtype(object):
	def __init__(self, obj, align=False, copy=False):
	pass

【例2】创建不同的数据类型

import numpy as np

a = np.dtype('b1')
print(a.type) # <class 'numpy.bool_'>
print(a.itemsize) # 1

#集中测试
def test(x):
    a = np.dtype(x)
    print(a.type)
    print(a.itemsize)
    
list = ['b1','i1','i2','i4','i8','u1','u2','u4','u8',
'f2','f4','f8','S','S3','U3']

for x in list:
    test(x)
   

结果:
<class ‘numpy.bool_’>
1
<class ‘numpy.int8’>
1
<class ‘numpy.int16’>
2
<class ‘numpy.int32’>
4
<class ‘numpy.int64’>
8
<class ‘numpy.uint8’>
1
<class ‘numpy.uint16’>
2
<class ‘numpy.uint32’>
4
<class ‘numpy.uint64’>
8
<class ‘numpy.float16’>
2
<class ‘numpy.float32’>
4
<class ‘numpy.float64’>
8
<class ‘numpy.bytes_’>
0
<class ‘numpy.bytes_’>
3
<class ‘numpy.str_’>
12

每个内建类型都有唯一定义的字符代码,如下
在这里插入图片描述

3、数据类型信息

python的浮点数通常是64位浮点数,几乎等同于np.float64

NumPy和Python整数类型的行为在整数溢出方面存在显着差异,与 NumPy 不同,Python 的 int 是灵活的。这意味着Python整数可以扩展以容纳任何整数并且不会溢出.

【例3-1】查看int16和int32

innfo源码

class iinfo(object):
	def __init__(self, int_type):
		pass
	def min(self):
		pass
	def max(self):
		pass
import numpy as np


ii16 = np.iinfo(np.int16)
print(ii16.min) # -32768
print(ii16.max) # 32767

ii32 = np.iinfo(np.int32)
print(ii32.min) # -2147483648
print(ii32.max) # 2147483647

【例3-2】查看float16和float32

import numpy as np

ff16 = np.finfo(np.float16)
print(ff16.bits) # 16
print(ff16.min) # -65500.0
print(ff16.max) # 65500.0
print(ff16.eps) # 0.000977


ff32 = np.finfo(np.float32)
print(ff32.bits) # 32
print(ff32.min) # -3.4028235e+38
print(ff32.max) # 3.4028235e+38
print(ff32.eps) # 1.1920929e-07

参考博客:
https://blog.csdn.net/Xiao_Spring/article/details/109172100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值