支持的数据类型
bool_ 布尔类型,保存为一个byte
int_ 默认整数类型,和C的long类型一样
intc 相当于C的int类型
intp 当做index的整数,和C的ssize_t一样
int8 -128 to 127
int16 -32768 to 32767
int32 -2147483648 to 2147483647
uint8 0 to 255
uint16,uint32,uint64等等类似的无符号整数
float_ float64的简写
float16 半精度float:符号位,5位指数位,10位尾数位
float32 单精度float:符号位,8位指数位,23位尾数位
float64 双精度float:符号位,11位指数位,52位尾数位
complex_ complex128的简写
关于类型转换
Data-types可以被用来作为函数实现python数字到array scalar(数组标量)的转换以及实现python数字序列到Data-types的数组的转换,或者当做赋值给dtype关键字的参数,例如:
import numpy as np
x=np.float32(1.0)
x
1.0
y=np.int_([1,2,4])
y
array([1,2,4])
z=np.arange(3, dtype=np.uint8)
z
array([0,1,2],dtype=uint8)
数组的类型使用 .astype()方法或使用者其自身类型所化的函数,例如:
z.astype(float)
array([0. , 1. , 2. ])
np.int8(z)
array([0,1,2],dtype=int8)
numpy数组的建立
有五种方法:
1 、从python结构类型转换(例如:lists,tuples等等)
2 、numpy 数组内涵的数组建立对象(例如arange,ones,zeros等等)
3 、从内存或者标准输入输出读取
4 、 利用strings或者缓存得到数组
5 、 利用特殊的库函数(例如random)
将python类数组对象转化为numpy数组
x = np.array([2,3,1,0])
x = np.array( [1,2.0], [0,0], (1+1j,3.) ] ) #注意是tuple和lists等的混合
内涵的numpy数组建立方法
zeros(shape) 方法将建立一个用0初始化的特定shape的数组,默认dtype为float64。
np.zeros( (2, 3)) #array( [ [0. ,0. ,0.] , [0. ,0. , 0.] ] )
类似的ones(shape) 方法将建立一个用1初始化的特定shape的数组
arange() 方法将建立一个按一定数值规律递增的一个数组
np.arange(6)
array( [0,1,2,3,4,5,6])
np.arange(2,6,dtype=np.float)
array( [2. , 3. , 4. , 5. ] )
np.arange(2, 3, 0.1)
array( [2. , 2.1 ,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9] )
linspace() 将建立一个用特定数值等分给定范围形成的数组,例如:
np.linspace(1. , 4. , 6)
array( [ 1. , 1.6, 2.2, 2.8, 3.4, 4 ])