python_numpy

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 231,2311
int64 整数,取值【 − 2 63 , 2 63 − 1 -2^{63},2^{63}-1 263,2631
uint8 8位无符号整数,取值【0,255】
unit16 16位无符号整数,取值【0,65535】
unit32 取值【 0 , 2 32 − 1 0,2^{32}-1 02321
unit64 取值【 0 , 2 64 − 1 0,2^{64}-1 0,2641
float16 16位半精度浮点数
float32 32位半精度浮点数
float64 64位半精度浮点数
complex64 复数类型,实部和虚部都是32位浮点数
complex128 复数类型,实部和虚部都是64位浮点数
ndarray数组的创建变换
  1. 从python中的列表、元组等类型创建ndarray数组
    x =np.array(list/tuple)
  2. 创建函数
函数 说明
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为多维时,返回每个维度梯度

你可能感兴趣的:(python)