Skip to content

Latest commit

 

History

History
104 lines (91 loc) · 3.02 KB

ch02_数组数据类型自定义.md

File metadata and controls

104 lines (91 loc) · 3.02 KB

#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)]