02.Python代码NumPy的数据类型及dtype对象
提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是NumPy的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~
python语法-numPy 第二节 :NumPy的数据类型
NumPy是什么,可以看上一节,方便理解:
01.NumPy是什么?NumPy的简介
一、数据类型
NumPy 支持的数据类型比 Python 内置的类型要多很多
bool_ 布尔型数据类型(True 或者 False)
int_ 默认的整数类型(类似于 C 语言中的 long,int32 或 int64)
intc 与 C 的 int 类型一样,一般是 int32 或 int 64
intp 用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)
int8 字节(-128 to 127)
int16 整数(-32768 to 32767)
int32 整数(-2147483648 to 2147483647)
int64 整数(-9223372036854775808 to 9223372036854775807)
uint8 无符号整数(0 to 255)
uint16 无符号整数(0 to 65535)
uint32 无符号整数(0 to 4294967295)
uint64 无符号整数(0 to 18446744073709551615)
float_ 如:float64 类型的简写
float16 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位
float32 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位
float64 双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位
complex_ 如:complex128 类型的简写,即 128 位复数
complex64 复数,表示双 32 位浮点数(实数部分和虚数部分)
complex128 复数,表示双 64 位浮点数(实数部分和虚数部分)
二、数据类型对象 (dtype)
在NumPy的NbArray中,每种数据类型都是一个dtype对象(NumPy.dtype)
numpy.dtype()方法可以将:obj对象转成dtype对象
numpy.dtype([object], [align], [copy]) 三个参数:
object - 要转换为的数据类型对象
align - 如果为 true,填充字段使其类似 C 的结构体。
输出格式对其对象
copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用
复制一份数据,还是用对象的引用地址
obj对象可以本身就是dtype对象,转来干嘛?
可以扩容,可以缩小(不常用,看需求)
obj对象可以是None,默认不传值的话,数据类型是float_
就是为什么,空的NbArray是带小数的
#int8,int16,int32,int64 四种数据类型可以是字符串'i1','i2','i4','i8'来代替
#您阅读代码的时候,可能您的同事会这么写
dt = np.dtype('i4')
print(dt)
运行:
三、数据类型dtype有什么用,怎么用
有什么用:
NumPy的NbArray数据类型dtype:是含有ndarray的变量,将一块内存解释为特定数据类型所需的信息。
反向理解:NumPy为什么可以提供一系列的矩阵和数组计算函数和数学函数,又能存又能算。让这些数字可以模拟各个信息,包括销量,图片,人脸,等等等。就是因为运行设计层面:dtype数据类型是在内存里面开辟的对应的矩阵/数组空间
那这个空间多大呢?都存吗?能算吗?我要取对应的某一个,list有下标取值,矩阵我怎么存怎么取?
对呀,这些早写好了,就是:
numpy.dtype()方法
将obj对象转成dtype对象(dtype对象:内存解释为一种特定的数据类型,方便我们用)
怎么用:
语法:正常声明一个数组,它已经就是dtype对象了。就正常的NumPy语法去用即可,只是它的内部dtype数据类型
array1=np.array([1,2,3])
print(array1)
print(array1.dtype)
int32描述的是:内存的空间大小和数据类型int整数
一般在实际的工作情况中:可能会遇到需要扩大,需要转数据类型为float小数,所以用array1.dtype查看一下当前的
建议使用规则:
数值型dtype的命名规则:类型名+元素长度。
ndarray是一个通用的同构数据多维容器,即同一ndarray对象的所有元必须素是相同的数据类型。
(会陆续更新非常多的IT技术知识及泛IT的电商知识,可以点个关注,共同交流。比心)