• Python Numpy 矩阵级基本操作(1)


    NumPy的操作介绍

    import numpy as np #导入numpy包,简写为np
    
    print "Generate 1*10 matrix"
    a=np.arange(1,11)**2 #生成1-10的数组,并且每个元素原地平方
    b=np.arange(1,11)**3
    c=a+b #两个矩阵对应元素相加
    print c
    print c.shape
    
    print "create a 2*10 matrix"
    m=np.array([np.arange(10),np.arange(10)]) #使用array来创建数组(矩阵),在括号内输入维度
    print m
    print m.shape
    
    print "generate zero matrix"
    z1=np.zeros(10,dtype=np.int8) #create zero matrix
    z2=np.zeros([3,4])
    print z1 
    print z2
    
    print "generate empty matrix"
    e=np.empty([2,2]) #create empty matrix
    print e
    
    print "create identity matrix with data type equals int8"
    eye1=np.eye(5,dtype=np.int8) #生成对角线矩阵
    print eye1
    print eye1[0,0] #get element by index
    print eye1[3,4]
    
    print "calculation between two matrix"
    arr1=np.array([[1,2,3],[4,5,6]]) #calculation between two matrix
    arr2=arr1*arr1
    print arr1
    print arr2
    print arr2-arr1
    print arr2/arr1
    print arr2%arr1
    
    print "calculation between a matrix and a number"
    print 1/arr1
    print arr1*0.3
    print arr1+0.08
    print arr1-0.33
    
    print "Test reshape" #reshape不改变原矩阵,resize改变原矩阵
    oriMatrix = np.arange(25)
    resMatrix = oriMatrix.reshape(5,5)
    print oriMatrix
    print resMatrix
    print "Reshape and Resize"
    oriMatrix.resize(5,5)
    print oriMatrix
    
    print "Test diagonal and sum"
    diag = resMatrix.diagonal()#获取对角线元素,组成向量
    sumdiag = sum(diag)#计算向量各元素的和
    print diag
    print sumdiag
    
    print "Get items by multi-index"
    arr3 = np.arange(32).reshape(8,4)
    print arr3
    print arr3[[1,7,3,2],:] #矩阵切片
    print arr3[:,[1,3]]
    
    print "Test Transpose"#矩阵转置
    print arr3.T
    print arr3.transpose()
    
    print "Test Ravel, From (m,n) to (m*n,1)"
    print arr3.ravel()#矩阵展开
    print arr3.flatten()
    
    print "Test stack" #矩阵的组合
    m1 = np.arange(9).reshape(3,3)
    m2 = m1*3
    mh = np.hstack((m1,m2)) #水平
    mv = np.vstack((m1,m2))  #垂直  
    md = np.dstack((m1,m2)) 
    print mh
    print mv
    print md
    
    print "Test split"
    print np.hsplit(mh, 3)
    print np.vsplit(mv,3)
    
    print "Array tools"
    print mh.ndim   #Dimension
    print mh.size   #the number of items
    print mh.itemsize #bytes for every item
    print mh.nbytes #total bytes=size*itemsize
    
  • 相关阅读:
    二分查找
    Uva11464 Even Parity
    Uva10881 Piotr's Ants
    POJ3154 Graveyard
    [NOIP2015] 提高组 洛谷P2680 运输计划
    [NOIP2015] 提高组 洛谷P2679 子串
    [NOIP2015] 提高组 洛谷P2678 跳石头
    [NOIP2015] 提高组 洛谷P2668 斗地主
    [NOIP2015] 提高组 洛谷P2661 信息传递
    [NOIP2015] 提高组 洛谷P2615 神奇的幻方
  • 原文地址:https://www.cnblogs.com/rhyswang/p/8156060.html
Copyright © 2020-2023  润新知