numpy用法笔记

  • 数组聚合
    • #聚合操作
      
      x = np.arange(1,5)
      y = np.add.reduce(x) #返回x所有元素之和
      y = np.multiply.reduce(x) #返回所有元素的乘积
      #外积(英语:Outer product),在线性代数中一般指两个向量的张量积,其结果为一矩阵;与外积相对,两向量的内积结果为标量。
      #外积也可视作是矩阵的克罗内克积的一种特例。注意到:一些作者将“张量的外积”作为张量积的同义词。
      y = np.multiply.outer(x,x) #该函数可以产生乘法表
       
    • #计算列,或者行的sum或者最大值
      x = np.arange(1,10).reshape(3,3)
      print(x)
      print(x.sum(axis = 0))
      print(x.max(axis = 0))
  • 数组创建
    •  
      # #从头建立数组,创建一维数组,该数组有10个元素,元素值为0
      L5 = np.zeros((10) , dtype='int')
      print(L5)
      
      #3*4二维数组,元素初始化为1
      L6 = np.ones((3,4) , dtype='float')
      print(L6)
      
      #5*4二维数组,元素初始化为3.3
      L7 = np.full((5,4), 3.3)
      print(L7)
      
      #整数数组,0-20之间整数,每隔两个元素取一个值
      L8 = np.arange(0, 20 , 3)
      
      #0,20之间的数字,均分为10份
      L9 = np.linspace(0,20,10)
      print(L8 , L9)
      
      #3*3二维数组,随机数
      L10 = np.random.random((3,3))
      print(L10)
      
      #符合正态分布,均值为0,方差为1,3*3
      L11 = np.random.normal(0, 1 ,(3,3))
      print(L11)
      
      #0,12间的随机整数作为元素,3*3
      L12 = np.random.randint(0,12,(3,3))
      print(L12)
      
      #3*3单位矩阵
      L13 = np.eye(3)
      print(L13)
      
      #一维数组,元素不初始化
      L14 = np.empty(4)
      print(L14)
      
      L1 = np.random.randint(10,size=(3,4))
      print(L1,L1.ndim,L1.size,L1.shape)
       
  • 数组拼接
    •  
      #字符串拼接
      
      x = np.array([[1,2,3],[4,5,6]])
      y = np.array([[10,20,30],[40,50,60]])
      z = np.concatenate([x,y],axis=0)
      
      f  = np.hstack([x,y])
      print(z)
    • 结果

      •   

        [[ 1  2  3]
         [ 4  5  6]
         [10 20 30]
         [40 50 60]]
        [[ 1  2  3]
         [ 4  5  6]
         [10 20 30]
         [40 50 60]]
         
    数组切片
    • 切片是原数组的视图,不是副本,所以改变它,原数组内的元素会发生改变 
      #一维数组切片
      L1 = np.arange(10)
      L2 = L1[:5]#其实元素开始,到第五个元素
      L3 = L1[3::3]#第三个元素开始,每隔两个元素取一个值
      L4 = L1[5::-2] #先逆序,再从5元素开始,隔一个元素取一个值
      
      print(L1)
      print(L2)
      print(L3)
      print(L4)
    • 结果:

      [0 1 2 3 4 5 6 7 8 9]
      [0 1 2 3 4]
      [3 6 9]
      [6 3 0]
    • 多维

      •   
        #多维数组切片
        L1 = np.random.randint(10,size=(5,6))
        L2 = L1[:2,:3]
        L3 = L1[3:5,4:6]
        L4 = L1[::2,::2]#每隔一行,一列取一个
        
        L5 = L4[::-1,::-1]#行,列逆序
        
        print('L1
        ',L1)
        print('L2
        ',L2)
        print('L3
        ',L3)
        print('L4
        ',L4)
        print('L5
        ',L5)
    • 结果 

      •   
        L1
         [[6 0 4 3 2 5]
         [7 0 4 8 6 5]
         [1 4 3 3 4 4]
         [5 5 8 5 0 1]
         [9 8 2 9 8 5]]
        L2
         [[6 0 4]
         [7 0 4]]
        L3
         [[0 1]
         [8 5]]
        L4
         [[6 4 2]
         [1 3 4]
         [9 2 8]]
        L5
         [[8 2 9]
         [4 3 1]
         [2 4 6]]
原文地址:https://www.cnblogs.com/maggie94/p/14141894.html