numpy数据类型和存取操作

numpy数据类型

数字代表该类型数据占据的bit数

bool_布尔(True或False)
int8整数( − 2 8 2 t o 2 8 2 − 1 -\frac{2^{8}}{2} to \frac{2^{8}}{2}-1 228to2281)即(-128 to 127)
int16整数( − 2 16 2 t o 2 16 2 − 1 -\frac{2^{16}}{2} to \frac{2^{16}}{2}-1 2216to22161)即(-32768 to 32767)
int32整数( − 2 32 2 t o 2 32 2 − 1 -\frac{2^{32}}{2} to \frac{2^{32}}{2}-1 2232to22321)即(-2147483648 to 2147483647)
int64整数( − 2 64 2 t o 2 64 2 − 1 -\frac{2^{64}}{2} to \frac{2^{64}}{2}-1 2264to22641)即(-9223372036854775808 to 9223372036854775807)
uint8无符号整数(0 to 255)
uint16无符号整数(0 to 65535)
uint32无符号整数(0 to 4294967295)
uint64无符号整数(0 to 18446744073709551615)
float16半精度浮点数,1个符号位,5个指数位,10个尾数位
float32单精度浮点数,1个符号位,8个指数位,23个尾数位
float64双精度浮点数,1个符号位,11个指数位,52个尾数位
complex64复数,双32位浮点数(实部和虚部部分)
complex128复数,双64位浮点数(实部和虚部部分)

对于float16, 2 10 = 1 0 3.01 2^{10}=10^{3.01} 210=103.01,所以其对应十进制小数精确的小数位数为3位;
对于float32, 2 23 = 1 0 6.9 2^{23}=10^{6.9} 223=106.9,所以其对应十进制小数精确的小数位数为6位;
对于float64, 2 52 = 1 0 15.6 2^{52}=10^{15.6} 252=1015.6,所以其对应十进制小数精确的小数位数为15位。
float32的存储方式如图:
在这里插入图片描述将一个float型转化为内存存储格式的步骤为:
(1)先将这个实数的绝对值化为二进制格式。
(2)将这个二进制格式实数的小数点左移或右移n位,直到小数点移动到第一个有效数字的右边。
(3)从小数点右边第一位开始数出二十三位数字放入第22到第0位。
(4)如果实数是正的,则在第31位放入“0”,否则放入“1”。
(5)如果n 是左移得到的,说明指数是正的,第30位放入“1”。如果n是右移得到的或n=0,则第30位放入“0”。
(6)如果n是左移得到的,则将n减去1后化为二进制,并在左边加“0”补足七位,放入第29到第23位。
如果n是右移得到的或n=0,则将n化为二进制后在左边加“0”补足七位,再各位求反,再放入第29到第23位。

numpy数据类型强制转换

查看数据类型:array.dtype
转换:array.astype('float64)

numpy数据保存和加载

二进制文件

只保存数据不保存形状和元素类型a.tofile('a.bin)
读入时需要指定元素类型b=np.fromfile('a.bin’,dtype=np.int32)

npy文件

保存:np.save('a.npy',a)
读取:c=np.load('a.npy')

txt和csv等文件

保存:np.savetxt('a.txt' ,a,fmt='%d')
读取:np.loadtxt('a.txt',dtype='int')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值