numpy(numerical python)是python语言的一个扩展程序库,支持大量的维度数组和矩阵运算,此外也针对数组提供大量的数学函数库。

  一、创建数组

  1 使用array()创建

import numpy as np
a = np.array([1,2,3,4,5])    #这是一个一维数组
a1 = np.array([[1,4,3],[4,5,6],[7,8,9.5]])    #这是一个二维数组

  numpy默认数组的所有元素的类型是相同的,如果传进来的列表包含不同的类型,则自动统一为同一类型,优先级:str>float>int,如图:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

数据分析之numpy模块 Python 第1张

  2 使用np的routines函数创建

  2.1 np.ones(shape,dtype=None,order='C')   

数据分析之numpy模块 Python 第2张

  2.2 np.zeros(shape,stype=None,order='C')   这和ones用法一样,只是得到的每个元素为0

  2.3 np.full(shape,fill_value,dtype=None,order='C')  这也一样,但只是多了一个fill_value参数,让我们可以指定填充的值

  2.4 np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)

数据分析之numpy模块 Python 第3张

  2.5 np.arange(start,stop,step,dtype=None)

数据分析之numpy模块 Python 第4张

  2.6 np.random.rantdint(low,high=None,size=None,dtype='I')

数据分析之numpy模块 Python 第5张

  2.7 np.random.random(size=None)  得到0到1的随机数,左闭右开

  2.8 np.random.randn(d0,d1,,,,)   标准正太分布

数据分析之numpy模块 Python 第6张

  二、数组的属性

  shape:形状   ndim:维度  size:长度  dtype:元素类型,以后在参数中,shape和size用法一样

数据分析之numpy模块 Python 第7张

  三、索引和切片

  1,索引

  一维索引和列表一样,多维的就用逗号隔开,分别表示行和列,或者更多。如果是二维的,逗号前面表示行,逗号后面表示列。

数据分析之numpy模块 Python 第8张

但如果要取第一行,就不用写逗号,直接在中括号里写上索引就行,取第一行和第三行,就在中括号里放一个中括号,在里面的中括号里放1和3。
arry1[1]    arry1[[1,3]]
如果要取第一列,就在逗号前面写冒号,逗号后面写索引,取多列时,就把逗号后面写上中括号,再在中括号里写索引
arry1[:,1] arry1[:,[2,3]]
如果要取多行多列,可以这样写:
arry1[[2,3],[2,3]]

  2,切片

  一维切片和列表一样,多维切片就和多维索引差不多,也是用逗号隔开

数据分析之numpy模块 Python 第9张

  这是切的第1至2行的第1至2列

  还可以将数据倒置,用'::-1'

arry1[::-1]     将行倒置
arry1[:,::-1]   将列倒置
arry1[::-1,::-1]    将行和列都倒置

数据分析之numpy模块 Python 第10张

  四、变形

  使用reshape()函数,参数是一个元祖,可以把一个数组的维度进行切换。arry1是一个5*5的二维数组,arry2=arry1.reshape((25))就变成了一个一维的数组,然后再通过arry2.reshape((5,5))又变成一个二维数组了,但整个变形过程中必须保证size是能对上的

   五、图片倒置

  我们要用到matplotlib.pyplot模块,它可以帮我们把图片转换成数组,然后把数组用图片展示出来;还要用到数据倒置的方法。

 数据分析之numpy模块 Python 第11张

数据分析之numpy模块 Python 第12张

  六、级联(np.concatedate())

concatenate()axis=0 纵轴 axis=1 横轴
当纵轴级联时,两个数组的列必须相同,当横轴级联时,两个数组的行必须相同
维度必须相同

数据分析之numpy模块 Python 第13张

  利用级联我们就可以做九宫格图片:

数据分析之numpy模块 Python 第14张

级联还有两种方法:
np.hstack()  axis=1,只能纵向
np.vstack()  axis=0,只能横向

  七、切分

np.split() 第一个参数为数组,第二个参数为切分点,为元祖,第三个参数是切分方向
np.vsplit()
np.hsplit()

数据分析之numpy模块 Python 第15张

  切分图片,就上面的猫的图片:

数据分析之numpy模块 Python 第16张

  八、副本

  在第数组进行赋值操作时,就会改变数组的值,但我们又不希望改变原数组的值(因为后面还会用到原数组),此时我们就需要复制一个原数组的数据,然后对复制的数组进行赋值操作。

数据分析之numpy模块 Python 第17张

  九、聚合操作

Function Name    NaN-safe Version    Description
np.sum    np.nansum    Compute sum of elements     求和
np.prod    np.nanprod    Compute product of elements
np.mean    np.nanmean    Compute mean of elements   求平均值
np.std    np.nanstd    Compute standard deviation
np.var    np.nanvar    Compute variance
np.min    np.nanmin    Find minimum value
np.max    np.nanmax    Find maximum value
np.argmin    np.nanargmin    Find index of minimum value
np.argmax    np.nanargmax    Find index of maximum value
np.median    np.nanmedian    Compute median of elements
np.percentile    np.nanpercentile    Compute rank-based statistics of elements
np.any    N/A    Evaluate whether any elements are true
np.all    N/A    Evaluate whether all elements are true
np.power 幂运算

  如求和操作:

数据分析之numpy模块 Python 第18张

  十、广播机制

重要】ndarray广播机制的三条规则:缺失维度的数组将维度补充为进行运算的数组的维度。缺失的数组元素使用已有元素进行补充。
规则一:为缺失的维度补1(进行运算的两个数组之间的维度只能相差一个维度)
规则二:缺失元素用已有值填充
规则三:缺失维度的数组只能有一行或者一列

数据分析之numpy模块 Python 第19张

  十一、快速排序

np.sort()与ndarray.sort()都可以,但有区别:
np.sort()不改变输入
ndarray.sort()本地处理,不占用空间,但改变输入

数据分析之numpy模块 Python 第20张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄