Numpy的数组对象ndarray
属性
属性 说明 .ndim 秩。即轴的数量或维度的数量 .shape 对象的尺度 .size 对象元素的个数 .dtype 对象的元素类型 .itemsize 对象中每个元素的大小,以字节为单位
>> > import numpy as np
>> > a = np. array( [ [ 0 , 1 , 2 ] , [ 3 , 4 , 5 ] , [ 6 , 7 , 8 ] ] )
>> > a
array( [ [ 0 , 1 , 2 ] ,
[ 3 , 4 , 5 ] ,
[ 6 , 7 , 8 ] ] )
>> > a. ndim
3
>> > a. shape
( 3 , 3 )
>> > a. size
9
>> > a. dtype
dtype( 'int32' )
>> > a. itemsize
4
元素类型
数据类型 说明 bool 布尔,true或false intc int整数类型 intp 用于索引的整数 int8 整数,取值【-128,127】 int16 整数,取值【-32768,32767】 int32 整数,取值【
−
2
31
,
2
31
−
1
-2^{31},2^{31}-1
− 2 3 1 , 2 3 1 − 1 】 int64 整数,取值【
−
2
63
,
2
63
−
1
-2^{63},2^{63}-1
− 2 6 3 , 2 6 3 − 1 】 uint8 8位无符号整数,取值【0,255】 unit16 16位无符号整数,取值【0,65535】 unit32 取值【
0
,
2
32
−
1
0,2^{32}-1
0 , 2 3 2 − 1 】 unit64 取值【
0
,
2
64
−
1
0,2^{64}-1
0 , 2 6 4 − 1 】 float16 16位半精度浮点数 float32 32位半精度浮点数 float64 64位半精度浮点数 complex64 复数类型,实部和虚部都是32位浮点数 complex128 复数类型,实部和虚部都是64位浮点数
ndarray数组的创建变换
从python中的列表、元组等类型创建ndarray数组 x =np.array(list/tuple) 创建函数
函数 说明 np.arange(n) 返回ndarray类型,元素从0到n-1 np,ones(shape) 根据shape生成一个全1数组 np.zeros(shape) 根据shape生成一个全0数组 np.full(shape,val) 根据shape生成一个全val值的数组 np.eye(n) 创建一个正方的n*n单位矩阵,对角线为1,其余为0 np.ones_like(a) 根据数组a生成一个全1数组 np.zeros_like(a) 根据数组a生成一个全0数组 np.full_like(a,val) 根据数组a生成一个全值为val的数组 np.linspace(start,end,spac) 根据气质数据等间距地填充数据 np.concatenate(start,end,n,endpoint) 合并两个数组,生成一个新的数组
>> > np. array( [ [ 0 , 1 , 2 ] , [ 3 , 4 , 5 ] , [ 6 , 7 , 8 ] , [ 9 , 10 , 11 ] ] )
array( [ [ 0 , 1 , 2 ] ,
[ 3 , 4 , 5 ] ,
[ 6 , 7 , 8 ] ,
[ 9 , 10 , 11 ] ] )
>> > np. arange( 12 )
array( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 ] )
>> > np. ones( ( 3 , 3 ) )
array( [ [ 1 . , 1 . , 1 . ] ,
[ 1 . , 1 . , 1 . ] ,
[ 1 . , 1 . , 1 . ] ] )
>> > np. zeros( ( 3 , 3 ) )
array( [ [ 0 . , 0 . , 0 . ] ,
[ 0 . , 0 . , 0 . ] ,
[ 0 . , 0 . , 0 . ] ] )
>> > np. full( ( 2 , 3 , 4 ) , 6 )
array( [ [ [ 6 , 6 , 6 , 6 ] ,
[ 6 , 6 , 6 , 6 ] ,
[ 6 , 6 , 6 , 6 ] ] ,
[ [ 6 , 6 , 6 , 6 ] ,
[ 6 , 6 , 6 , 6 ] ,
[ 6 , 6 , 6 , 6 ] ] ] )
>> > np. eye( 3 )
array( [ [ 1 . , 0 . , 0 . ] ,
[ 0 . , 1 . , 0 . ] ,
[ 0 . , 0 . , 1 . ] ] )
a = np. array( [ [ 0 , 1 , 2 ] , [ 3 , 4 , 5 ] , [ 6 , 7 , 8 ] , [ 9 , 10 , 11 ] ] )
>> > a
array( [ [ 0 , 1 , 2 ] ,
[ 3 , 4 , 5 ] ,
[ 6 , 7 , 8 ] ,
[ 9 , 10 , 11 ] ] )
>> > np. ones_like( a)
array( [ [ 1 , 1 , 1 ] ,
[ 1 , 1 , 1 ] ,
[ 1 , 1 , 1 ] ,
[ 1 , 1 , 1 ] ] )
>> > np. zeros_like( a)
array( [ [ 0 , 0 , 0 ] ,
[ 0 , 0 , 0 ] ,
[ 0 , 0 , 0 ] ,
[ 0 , 0 , 0 ] ] )
>> > np. full_like( a, 6 )
array( [ [ 6 , 6 , 6 ] ,
[ 6 , 6 , 6 ] ,
[ 6 , 6 , 6 ] ,
[ 6 , 6 , 6 ] ] )
>> > a = np. linspace( 1 , 10 , 5 )
>> > a
array( [ 1 . , 3.25 , 5.5 , 7.75 , 10 . ] )
>> > b = np. linspace( 1 , 10 , 5 , endpoint = False )
>> > b
array( [ 1 . , 2.8 , 4.6 , 6.4 , 8.2 ] )
>> > c = np. concatenate( ( a, b) )
>> > c
array( [ 1 . , 3.25 , 5.5 , 7.75 , 10 . , \
1 . , 2.8 , 4.6 , 6.4 , 8.2 ] )
数组维度变换
方法 说明 .reshape(shape) 返回一个shape形状的数组,原数组不变 .resize(shape) 修改原数组为shape形状 .swapaxes(ax1,ax2) 将数组n个维度中两个维度进行调换 .flatien() 对数组进行降维,返回折叠后的一维数组,原数组不变
数组的运算
函数 说明 np.abs(x) & np.fabs(x) 计算各元素的绝对值 np.sqrt(x) 计算各元素的平方根 np.square(x) 计算各元素的平方 np.log(x) 计算各元素的对数 np.ceil(x)&np.floor(x) 计算各元素的ceiling或floor np.rint(x) 对各元素四舍五入 np.modf(x) 返回各元素的小数部分和整数部分 np.sin(x)… 计算各元素的三角函数 np.exp(x) 计算各元素的指数值 np.sign(x) 计算元素符号值,1(+),0(0),-1(-) np.fmax(x,y) 元素级的最大值 np.fmin(x,y) 元素级的最小值 np.mod(x,y) 元素级的模运算 np.copysign(x,y) 将数组y中各元素的符号赋值给数组x对应的元素
Numpy数据存储
CSV文件_适合二维以下数据
写入函数: np.savetxt(frame,array,fmt,delimiter) -frame:文件 -array:写入文件的数组 -fmt:写入文件格式 -deliniter:分隔字符串,默认是空格 读取函数 np.loadtxt(frame,dtype,delimiter,unpack) -frame:文件 -deype:数据类型 -delimiter:分隔字符串,默认空格 -unpack:如果True,读入属性将分别写入不同变量
多维度数据
文件写入 a.tolife(frame,sep=’ ‘,format=’%s’) -frame:文件 -sep:分隔字符串,如果是空格,写入文件为二进制 -format:写入数据格式 文件读取 np.froomfile(frame,deype=float,count=-1,sep=’ ') -frame:文件 -deype:读取的数据类型 -count:读入元素个数 -sep:数据分割字符串 注意: 文件的读取时必须明确原数组的属性,写入格式。
numpy的便捷文件存取
文件写入 np.save(fname,array) -fname:文件 -array:数组 文件读取 np.load(fname) -fname:文件名 注意: 文件以 .npy 为扩展名,压缩扩展名为 .npz
Numpy函数
函数 说明 sum(a,axis=None) 根据轴axis计算数组a元素之和 mean(a,axis=None) 根据轴axis计算数组a元素期望值 average(a,axis=None,weights=None) 根据轴axis计算数组a元素加权平均值 std(a,axis=None) 根据轴axis计算数组a元素标准差 var(a,axis=None) 根据轴axis计算数组a元素方差 min(a)、max(a) 数组a中元素的最小(大)值 argmin(a)、argmax(a) 数组a中元素最小值、最大值的降一维后下标 unravel_index(index,shape) 根据shape将一维下标index转换成多维下标 ptp(a) 数组a中元素最大值和最小值的差 median(a) 数组a中元素的中位数 np.gradient(f) 计算数组f中元素的梯度,当f为多维时,返回每个维度梯度