Python NumPy入门归纳~持续更新

NumPy使用的一种矩阵式数据结构管理数据,比Python的list和标准库的array更加强大,使用简便。此篇简单归纳逼逼叨Numpy入门,持续补充。。。。

1.Numpy Reference documentation:
   Interactive help:     numpy.array?
   Looking for something:      numpy.lookfor('create array')

2.Create arrays
   b =np.array([[0,1, 2],[3, 4, 5]])   # 2 x 3 array
   b.ndim获取b的dimension
   b.shape  输出  (2,3)   表示  2*3 array
   len(b)   输出  2   返还array的第一个维度的大小

3.Functions for creating arrays
   numpy.arange(a, b, c)  :  a 起始值  b 终止值  c 步长
   numpy.linspace(a ,b , c):  a 起始值 b 终止值  c 元素个数
   arange 和linspace都是创建等距数列,且都指定起始和终止值,但一个指定步长,linspace等距划分指定个数

     numpy.ones ( (i , j) )  ,  numpy.zeros ( ( i, j) ) 创建 i*j 且元素全部为0或1的阵列
   

    numpy.random.rand(4) :  # uniform  in  [0 , 1]
    array([ 0.95799151,  0.14222247,  0.08777354,  0.51887998])

    4.Indexing and slicing
    注意:在二维矩阵里,第一维对应行,第二维对应列

    Slicing: 对矩阵分割切片
    numpy.arange(10) [2 , 9, 3]     #   [ start : end : step ]
    默认情况下,起始0,终止最后一个,步长为1
   
   
   4.Copies and views
   a = np.arange(10) ,b = a 则这两个数列共享同一段内存,用numpy.may_share_memory(a,b)即可检测,而用  c = a.copy() 则只   是将数据赋值过去,并不共享内存。所以修改b的数据,共享内存的a也会一并修改,而c不受影响。 

   5.Fancy indexing
   a=numpy.arange(10)
   ( a%  3  ==  0)  则输出bool型array判断是否符合
   若要输出对应符合条件元素:
  • mask=(a%3==0)
  • extract_from_a=a[mask]
  • extract_from_a
    修改符合条件元素:    a [a  %   3 == 0]  =  -1
 
    indexing with an array of integers
   
   
   
  
    
    6. Other operations
    Array  a  , b 进行比较,同等维度,且size一样:
    a==b,   a>b  , np.array_equal( a, b)  返还array 的 dtype = bool
    还能进行与和或比较:
    np.logical_or(a, b)      np.logical_and(a, b)

    Transcendental functions:
    np.sin(a)    np.log(a)    np.exp(a)

    Transposition:  a.T进行矩阵转置

    7.Basic reductions
    计算和: x = np.array( [ [1, 1], [2, 2] ])
    sum by rows and colums:  x.sum(axis=0)   x[ : , 0].sum()   x[ : , 1].sum()  即可通过索引 indexing方式计算和sum()

    Other reductions: 寻找array x中的特殊值
    x.min()    x.max()    x.argmin()    x.argmax()    x.mean()     x.median()   注意:括号中可添加索引indexing,例如numpy.median(y,axis=1)
    numpy.all()    numpy.any()  括号中为判断条件或者bool型值,all为判断是否括号中所有条件为真,而any判断括号中是否存在真值
    例如:numpy.all ( [ True, True, False ] )    numpy.any ( [ False, False, True] )
    numpy.tile(a, k)  tile函数能将array   a 复制k组

    Array shape manipulation :
    将array a转变成一维数组使用函数 a.ravel(), 重新转成 i*j 的矩阵使用函数 a. reshape ( ( i*j ) )
    和 reshape() 函数有着类似功能的是 transpose(), 能够改变矩阵的维度
   
    
     a.resize() 能够改变矩阵某一围度的size,但是注意矩阵a不能被引用,例如 b = a, 因为共享内存,resize()函数无法同时修改 b 占用的内存

     sort()函数可以对矩阵里的元素大小进行排序,可以使用 numpy.sort()  或者  a.sort()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值