numpy学习笔记

ε祈祈猫儿з 提交于 2019-11-28 15:35:11

Numpy 的核心是 ndarray 对象,这个对象封装了同质数据类型的n维数组。(数组,即为有序的元素序列)    

numpy约定俗成的导入方式:

  import numpy as np

基本的 ndarray 是使用 NumPy 中的数组函数创建的,如下所示:
  array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

numpy的ndarray 与 python原生array有什么区别:

  NumPy 数组在创建时有固定的大小,不同于Python列表(可以动态增长)。更改ndarray的大小将创建一个新的数组并删除原始数据。
  NumPy 数组中的元素都需要具有相同的数据类型,因此在存储器中将具有相同的大小。数组的元素如果也是数组(可以是 Python 的原生 array,也可以是 ndarray)的情况下,则构成了多维数组。

常用数组:np.zeros() #全0数组 默认float型

     np.ones() #全1数组 默认float型

     np.full(形状,x) #全为相同值的数组

     np.eye() #单位矩阵 默认float型

     np.ones_like(a)、np.zeros_like(a)、np.full_like(a,x) #按照某一数组的形状生成ndarray

     np.empty() #创建一个初始化数组

     np.diag() #创建对角矩阵,最后一个参数表示偏移量,正数向右上角偏移,负数向最下角偏移

     np.nan #设置空值

     np.random.randint() #随机整数

     np.random.randn()=np.random.standard_normal() #标准正态分布

     np.random.rand() #返回[0,1)之间的数

     np.random.normal(均值,标准差,形状)

     np.arange()、np.linspace() #创建一个线性序列的数组

数组属性:ndarray.shape #返回一个包含数组维度的元组

     ndarray.dtype #返回数组元素的类型

     ndarray.ndim #返回数组的维度

     ndarray.itemsize #返回数组中每个元素的字节单位长度

数组维度变换:ndarray.reshape #返回调整shape后的数组(不改变原数组)

       ndarray.resize #返回调整shape后的数组(改变原数组)

       ndarray.swapaxes #返回调换两个维度后的数组

       ndarray.flatten #对数组进行降维,返回折叠后的一维数组

数组类型变换:ndarray.astype() #更改数组的类型

       ndarray.tolist() #将数组变为列表

基本索引与切片规则:[start:stop:step]

数组拼接:np.vstack=np.row_stack #沿纵轴拼接

     np.hstack=np.column_stack #沿横轴拼接

     np.concatenate #将数组以某一轴进行拼接,axis需认为设定

数组分割:np.hsplit #纵向进行分割

     np.vsplit #横向进行分割

     np.array_split #按指定轴进行分割

算数运算:np.add(a,b) #数组的加法

     np.subtract(a,b) #数组的减法

     np.multiply(a,b) #数组的乘法

     np.divide(a,b) #数组的除法

     np.reciprocal() #返回参数逐元素的倒数,对于绝对值大于1的整数元素结果始终为0,对于整数0则发出溢出警告

     np.exp() #以e为底的指数,np.exp2() #以2为底的指数,np.expm1() #返回np.exp()-1

     np.power() #幂函数

     np.mod()=np.remainder() #返回数组中相应元素的除法余数

     np.around() #返回四舍五入到所需精度的值,decimals表示要舍入的小数位数,默认0,如果为负则四舍五入到小数点左侧

     np.floor() #向下取整

     np.ceil() #向上取整

含有复数的数组:np.real() #返回复数类型参数的实部

        np.imag() #返回参数的虚部

        np.conj() #返回通过改变虚部符号而获得的共轭复数

        np.angle() #返回复数参数的角度,参数为degree,为true时以角度制表示,否则以弧度制表示

字符串函数:np.char.add() #按元素的字符串连接

      np.char.multiply() #多重连接

      np.char.center() #返回所需宽度的数组,以便输入字符串位于中心,并使用fillchar在左侧和右侧进行填充

      np.char.capitalize() #返回字符串的副本,其中第一个字母大写

      np.char.title() #返回输入字符串的按元素标题转换版本,其中每个单词首字母都大写

      np.char.lower() #返回数组中元素转换为小写

      np.char.upper() #返回数组,其元素转换为大写

      np.char.split() #返回输入字符串中的单词列表,默认用空格作分隔符

      np.char.splitlines() #返回数组中元素的单词列表,\n \r \r\n都当作换行符处理

      np.char.strip() #返回数组副本,其中元素移除了开头或结尾处的特定字符

      np.char.join() #返回一个字符串,其中单个字符由特定的分隔符连接

      np.char.replace() #返回字符串副本,其中所有字符序列的出现位置都被另一个给定的字符序列取代

统计函数:np.amin() #从给定数组中的元素沿指定轴返回最小值

     np.amax() #从给定数组中的元素沿指定轴返回最大值

     np.ptp() #返回沿轴的值的极差(最大值-最小值)

     np.percentile(数组,百分位数,轴) #返回特定轴的百分位数

     np.median() #返回数组中值

     np.mean() #返回数组的算术平均值

     np.average() #返回数组的加权平均值,不指定权重时=mean,如果returned参数设为true,返回权重的和

     np.std() #返回数组的标准差,标准差是与均值的偏差的平方的平均值的平方根。标准差公式如下: std = sqrt(mean((x - x.mean())**2))

     np.var() #返回数组的方差,方差是偏差的平方的平均值,即mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。

排序、搜索和计数函数:np.sort() #返回输入数组的排序副本

           np.argosrt() #函数对输入数组沿给定轴执行间接排序,并使用指定排序类型返回数据的索引数组。这个索引 数组用于构造排序后的数组。

           np.lexsort() #函数使用键序列执行间接排序。键可以看作是电子表格中的一列。该函数返回一个索引数组,使用它可以获得排序数据。注意,最后一个键恰好是 sort 的主键。

           np.argmax()和np.argmin() #沿给定轴返回最大和最小元素的索引

           np.nonzero() #返回输入数组中非零元素的索引

           np.where() #返回输入数组中满足给定条件的元素的索引

           np.extract() #返回满足任何条件的元素

转置:转置只能发生在二维及以上的维度的数组上生效,一维的数组只有一个维度是 不可以转置的

  ndarray.T

唯一化和集合逻辑:np.unique() #去重函数

         np.in1d() #验证元素是否在给定序列中

         np.intersect1d() #求交集

         np.union1d() #求并集

         np.setdiff1d() #求差集

矩阵库:import numpy.matlib,此模块的函数返回矩阵而不是返回 ndarray对象

线性代数:np.dot(a,b)=a@b #返回两个数组的点积,对于 N 维数组,它是 a 的最后一个轴上的和与 b 的倒数第二个轴的乘积

     np.vdot(a,b) #返回两个向量的点积

     np.inner() #返回一维数组的向量内积,对于更高的维度,它返回最后一个轴上的乘积的和

     np.matmul() #返回两个数组的矩阵乘积

     np.linalg.det() #计算输入矩阵的行列式

     np.linalg.solve() #给出矩阵形式的线性方程的解

     np.allclose(a,b) #判断两者是否相等

     np.linalg.inv() #计算矩阵的逆

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!