文章目录
上篇文章 Python Numpy学习笔记(1)讲到了ndarray与list的区别,这篇文章就讲讲ndarray的 基本数据类型
个人能力有有限,只能写到这种程度,
基本数据类型
类型名 | 类型表示符 |
---|---|
布尔型 | bool_ |
有符号整数型 | int8(-127~128) / int16 / int32 / int64 |
无符号整数型 | uint8(0~255) / uint16 / uint32 / uint 64 |
浮点型 | float16 / float32 / float64 |
复数型 | complex64 / complex128 |
字串型 | str_,每个字节用32位Unicode编码表示 |
数据类型解释
要指定数据类型,设置 dtype
属性即可
ary = np.array([1,2,3,4,5,6],dtype='float32')
布尔型bool_(也可写成bool)
布尔型只有两个值
True
和False
空字符串,0,None,转成布尔型后都是False
其他的为True
ary = np.array([0,'',None,'0','a',1,-1,0.1],dtype='bool')
print(ary)
输出为:
[False False False True True True True True]
有符号整数型int
有符号整数型,就是存一个整数,这个整数的范围取决于位数
例如,int32,在计算机中用32位(4字节)储存,最高位是符号位
符号位为 0 是正数,用原码储存
1 ⇒ \Rightarrow ⇒ 00000000 00000000 00000000 00000000
2147483647 ⇒ \Rightarrow ⇒ 01111111 11111111 11111111 11111111
符号位为 1 则是负数,用补码储存
-1 ⇒ \Rightarrow ⇒ 11111111 11111111 11111111 11111111
-2147483647 ⇒ \Rightarrow ⇒ 10000000 00000000 00000000 00000001
关于int类型的 原码,反码,补码,这篇文章有介绍
int类型在计算机中的储存(原码、补码、反码)
储存范围
类型 | 范围 |
---|---|
int8 | -128 ~ 127 |
int16 | -32,768 ~ 32,767 |
int32 | -2,147,483,648 ~ 2,147,483,647 |
int64 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
注意
如果往int32中存 2147483648(正好比最大值多1)
那数字将会溢出,会变成 -2147483648
无符号整形uint
与int一样,只是不需要符号位
储存范围
类型 | 范围 |
---|---|
uint8 | 0 ~ 255 |
uint16 | 0 ~ 65,535 |
uint32 | 0 ~ 4,294,967,295 |
uint64 | 0 ~ 18,446,744,073,709,551,615 |
浮点数float
简单来说,就是存小数的
储存方式挺复杂的 这篇文章讲了个大概
复数complex
此地略
字串型str_(也可写成str)
字符的储存方式请参照这篇博客
类型字符码
在设置数据类型时时,可以使用类型字符码简写,更方便
类型 | 字符码 |
---|---|
np.bool_ | ? |
np.int8 / 16 / 32 / 64 | i1 / i2 / i4 / i8 |
np.uint8 / 16 / 32 / 64 | u1 / u2 / u4 / u8 |
np.float16 / 32 / 64 | f2 / f4 / f8 |
np.complex64 / 128 | c8 / c16 |
np.str_ | U |
np.datetime64 | M8[Y] M8[M] M8[D] M8[h] M8[m] M8[s] |
一个小广告
个人工作室: Sakuyark
网站:sakuyark.com