pythonnumpyobject数据类型_numpy中的数据类型对象有哪些Numpy数据类型
numpy是⼀个python扩展包,它可以为我们提供更精确的科学技术,更强⼤的数学能⼒。为此,numpy定义了⽐python更丰富的数据类型来达成⽬的。
数据类型
以上就是⼀系列Numpy中提供的数据类型。需要理解的是,Numpy中的数据类型,和python本⾝的数据类型是不同的。Numpy中的数据类型,实质是数据类型对象dtype的实例。
Numpy中的Ndarray对象可以帮助我们构建N维数组对象。我们知道,对于数组来说,最⼤特点是,对于给定长度的数组,其在内存中所占⽤的空间⼤⼩是预先分配的,并且,每个元素所占⽤的空间⼤⼩是相当的。
那么,Ndarray怎么计算每个元素所占⽤的空间⼤⼩呢?就是根据dtype。换句话说,dtype定义中,应该包含类型的名字,并且,能够明确该类型实例占⽤的内存空间⼤⼩。
另外,dtype中还表明了数据的字节顺序。什么是字节顺序呢?我们知道,对于机器来说,正常的⼈类语⾔是⽆法直接被识别或存储的。需要转换成⼆进制01代码。这种⼆进制01代码称为机器语⾔,也叫字节码。对于⼀个特定的正常语⾔,转换成⼀系列01代码后,可以正向存放,也可以逆向存放。低位放在最前,
称之为⼩端法,⾼位放在最前,则称之为⼤端法。
在numpy,core包的multiarray_umath.py模块中,可以到dtype类的定义。有兴趣的同学可以尝试阅读⼀下其源码。读源码其实是⼀种有效的学习编程的⽅式。
dtype类定义
Numpy数据类型的简单案例
案例⼀:numpy.bool_和bool有区别
numpy的bool_和bool
上⾯的demo不会报错,这容易让⼈误以为,bool可能是numpy中bool_的简写,事实上,⼆者是两个不同的对象。bool_是由numpy定义的,⽽bool则是由python标准库定义的。
额外补充⼀点关于python数据类型的内容。我们知道,python中,有⼀系列基本数据类型,如数字,字符串,列表,元组,字典,集合等。⽽⼜与之对应,创建了⼀系列对象,帮助使⽤,如int,float,complex,str,list,tuple,dict,set等。bool也是⼀个,只不过,查看源码你会发现,int,float等,都是以object为⽗类的,⽽bool,则是以int为⽗类的。这正是python⼀切皆对象的表现之⼀。
案例⼆:使⽤字符串码
字符串码可以帮助建⽴⼀个dtype对象实例,还可以同时指定其字节码顺序。字符串码⼀般⽐原数据类型的标识符要短。
⽐如说,int类型的字符串码为i,可以通过以下⽅式创建:
int类型的字符串码
我们发现,通过字符串码i,创建了⼀个int32,你也可以通过i3来创建int32,通过i1创建int8,通过i2创建int16,通过i4创建int64。规律就是i其实是int的⾸字母,后⾯的数字其实是字节的长度,8位是1个字节,16位是两个字节,32位是三个字节……
⼤部分的情况下是可以通过这种规律来帮助记忆的。事实上,⽤多了,⾃然也就记住了。常⽤列表如下:
字符串码python获取数组长度
通过在字符串码前加⼤于或⼩于号来指定字节排序,⼩于代表⼩端法,⼤于代表⼤端法,如下:
指定排序
其实在⼤部分场景下,我们不需要关注字节的排序,这时候,直接通过np的对象来创建就好,这样也不⽤去记忆或查询字符串码了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论