#NumPy中的 数据类型
为满足科学计算的需求,NumPy除去Python本身提供的整型、浮点型以及复数型外还添加了很多其他的数据类型
类型 | 描述 |
---|---|
bool | 用一位存储的布尔类型(值为 TRUE 或 FALSE) |
inti | 由所在平台决定其精度的整数(一般为 int32 或 int64 |
int8 | 整数,范围为-128至127 |
int16 | 整数,范围为-32768至32767 |
int32 | 整数,范围为-231至231-1 |
int64 | 整数,范围为-263至263-1 |
uint8 | 无符号整数,范围为0至255 |
uint16 | 无符号整数,范围为0至65535 |
uint32 | 无符号整数,范围为0至232-1 |
uint64 | 无符号整数,范围为0至264-1 |
float16 | 半精度浮点数(16位):其中用1位表示正负号,5位表示指数,10位表示尾数 |
float32 | 单精度浮点数(32位):其中用1位表示正负号,8位表示指数,23位表示尾数 |
float64或float | 双精度浮点数(64位):其中用1位表示正负号,11位表示指数,52位表示尾数 |
complex64 | 复数,分别用两个32位浮点数表示实部和虚部 |
complex128或complex | 复数,分别用两个32位浮点数表示实部和虚部64 |
#数据类型的转换
上面的表格中每一种数据类型均有对应的类型转换函数,下面是一些类型转换的示例代码
# coding=utf-8
import numpy as np
print np.float("2323232") #输出2323232.0
print np.int8(42.0) #输出42
print np.bool(23232) #输出True
print np.bool(0) #输出False
print np.int8(True) #输出1
#numpy数组创建时指定数据类型
在NumPy中,许多函数的参数中可以指定数据类型,通常这个参数是可选的,如下面代码所示
# coding=utf-8
import numpy as np
arr1=np.array([1,2,3,4,5],dtype=np.str)
print arr1
arr1=np.array([1,2,3,4,5],dtype=np.int8)
print arr1
arr1=np.array([1,2,3,4,5],dtype=np.float16)
print arr1
['1' '2' '3' '4' '5']
[1 2 3 4 5]
[ 1. 2. 3. 4. 5.]
#自定义数据类型
dtype([(名称,数据类型,宽度)]) _其中数据类型建议采用numpy的数据类型,如通过numpy.float等指定 示例
# coding=utf-8
import numpy as np
#建立一个自定义的userInfoType的数据类型对象
userInfoType = np.dtype([('name', np.str, 40), ('age', np.int32), ('sale',np.float32)])
#使用自定的userInfoType数据类型创建一个numpy数组
userList=np.array([('liao',23,23.0),('xiao',24,230.0)],dtype=userInfoType)
print userList #输出[('liao', 23, 23.0) ('xiao', 24, 230.0)]