zoukankan      html  css  js  c++  java
  • 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]]
  • 相关阅读:
    springboot整合mybatis
    springboot配置mvc拦截器
    ORA-65048:在可插入数据库PDBORCL中处理当前DDL语句时出错 ORA-00959:表空间‘MMMM’不存在
    SI Unit 国际标准单位
    java学习的第二阶段总结
    java学习的第一阶段总结
    vmware学习笔记
    java当中的语法糖
    jvm系统学习笔记
    java中Direct Memory堆外内存
  • 原文地址:https://www.cnblogs.com/maggie94/p/14141894.html
Copyright © 2011-2022 走看看