Numpy

作者: 尚恩_3295 | 来源:发表于2019-07-30 10:43 被阅读0次

    操作数组和矩阵

    import numpy as np
    a = np.array([1,2,3])#创建加上np.后面加上其他函数[1 2 3]
    a = np.array([1,2,3],dtype=np.int32)
    a = np.array([[1,2,3],[2,2,2]])#二维
    a = np.zeros((2,3))#全零矩阵
    a = np.empty((2,3))#同上
    a = np.ones((2,3))#全一矩阵
    a = np.arange(1,10,3)#步长输出[1 4 7]不包括10
    print(a.ndim)#维数
    print(a.shape)#输出(行,列)
    print(a.size)#输出总长度
    b = np.arange(4)#自然数等价于(0,4,1)
    

    基本操作

    c=a-b#[0. 1. 2.]
    c=a*b#对应元素相乘  结果还是矩阵
    c = a.dot(b)#a矩阵与B矩阵的点乘  结果是常数
    c=a**2#对应位置的平方  结果还是矩阵
    

    二维操作

    a = np.array([[1,2],[2,3]])
    b = np.arange(4).reshape((2,2))#矩阵为[[0 1],[2,3]]
    c=a.dot(b)#还是矩阵([4 7]  [8 16])    属于a 的函数
    

    特殊操作 属于np的函数

    a= np.random.random((2,4))#随机数组 2*4  np.数值.行列
    a_sum=np.sum(a)#矩阵的所有元素的和
    print(np.min(a))#[[1 2][3 4]]  为1  结果是一个数字  不是矩阵
    print(np.mean(a))#求矩阵元素的平均值 如上:为2.0
    print(np.sum(a,axis=0))#按列进行求和  结果为一维矩阵  如上[3 5]
    print(np.sum(a,axis=1))#按行进行求和  结果为一维矩阵   如上[3 5]
    
    A=np.arange(2,14).reshape(3,4)
    A= np.array([[6,2],[5,3]])
    print(np.argmax(A))#最大值元素的索引 元素 是不管几维的单个数字
    print(np.argmin(A))#最小值元素的索引
    

    平均值

    np.mean(A)#np方法
    np.average(A)
    A.mean()#矩阵方法
    np.median(A)#中位数
    
    np.cumsum(A)#累加运算:结果为矩阵 [[6 2][5 3]]  ----[6 8 13 16]
    np.diff(A)  #累减结果为矩阵  有几行,就有几维  [[-4][-2]]
    #
    np.sort(A)#对每一行进行递增排序  结果 :[[2 6][3 5]]
    
    #矩阵转置
    np.transpose(A)
    A.T
    #特殊
    np.clip(A,3,5)#比3小的变成3,比5大的变成5
    

    索引切片

    A=np.arange(2,14)
    B=A.reshape((3,4))
    B[2]#array([10, 11, 12, 13])
    B[0][2]# 4
    B[1,2]#Out[83]: 8
    B[0:2,0:2]#Out[84]:array([[2, 3],[6, 7]])
    

    打印行列

    for x in B:
         print(x)
    # [2 3 4 5]
    # [6 7 8 9]
    # [10 11 12 13]
    for x in B.T:
        print(x)
        # [2  6 10]
        # [3  7 11]
        # [4  8 12]
        # [5  9 13]
    #多维变成一维
    B.flatten()
    

    行矩阵

    #数组操作:合并拆分
    np.vstack((b,c))#上下合并::注意括号(一维不变,接着合并)
    # [[ 0  1]
    #  [ 2  3]
    #  [ 4  7]
    #  [ 6 11]]
    np.hstack((b,c))#两个数组左右合并(每一个一维数组变,一维数组扩大元素)
    # [[ 0  1  4  7]
    #  [ 2  3  6 11]]
    np.dstack((b,c))#深度合并(每一个元素变成一维矩阵)
    

    多个矩阵合并

    #列矩阵
    A[:,np.newaxis]#[2 3 4 5 6]====[[2][3]]#A.T
    np.concatenate((b,c),axis=0)#纵向合并类似于上面的上下合并
                                #结果是一个列矩阵
    np.concatenate((b,c),axis=1)#横向合并,类似于上面的左右合并
                                #结果是一个原矩阵
    

    多个矩阵拆分:

    E=np.arange(1,65).reshape(8,8)#8个矩阵
    #演横轴拆分
    print(np.split(E,1,axis=1))#同样的(一划分,矩阵不变)
    print(np.split(E,2,axis=1))#二划分,矩阵变小,且变成两个数组矩阵
    #4(最多变成4划分)
    

    相关文章

      网友评论

          本文标题:Numpy

          本文链接:https://www.haomeiwen.com/subject/djlolctx.html