• 第十章、numpy模块


    第十章、numpy模块

    一、导入方式

    import numpy as np#约定俗成
    

    二、作用

    数组或矩阵的运算

    1. numpy数组

      arr1 = np.array([1,2,3])    #创建一维数组对象
      arr1
      
      arr2 = np.array([[1,2,3],[4,5,6]])
      arr2                       #二维数组
      

      三维数组不用numpy模块,用TensorFlow、pytorch模块

    2. 属性

      属性 解释
      T 数组的转置(也就是行和列互换)
      dtype 数组元素的数据类型
      size 数组元素的个数(比如2行3列为6)
      ndim 数组的维数
      shape 数组的维度大小(以元组形式)(比如2行3列为(2,3))
      astype 类型转换
      arr = np.array([[1, 2, 3], [4, 5, 6]])
      print(arr.T)  # 行与列互换   arr1.transpose()也是转置
      -------------------------------------------------------
      [[1 4]
       [2 5]
       [3 6]]
      

    切片

    arr = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr[:]) #取出数组所有元素
    print(arr[:, :]) #取出数组所有元素

    print(arr[0, :]) #取出第0行到第一行的数组
    print(arr[0:1, :]) #取出第0行到第一行的数组,顾头不顾尾
    print(arr[0:1, 0:1]) #取出第0行到第一行,第0列到第一列的数组,顾头不顾尾
    print(arr[0, 0],type(arr[0, 0])) #取出第0行到第一行,第0列到第一列的数,输出数组类型
    print(arr[0, [0,2]]) #取出第0行第0个元素和第2个元素 [1 3]
    print(arr[0, 0] + 1) #取出第0行第0列的元素加1 2

    
    

    取值

    arr = np.array([[1, 2, 3], [4, 5, 6]])
    arr[0, :] = 0 #将第0行的元素全部变为0
    print(arr)

    [[0 0 0]
    [4 5 6]]
    arr[1, 1] = 1 #将第一行第一列的数字改为1

    arr[arr < 3] = 3 # 布尔取值 将小于3的数字全部变为3
    print(arr)

    
    

    合并

    arr1 = np.array([[1, 2, 3], [4, 5, 6]]) # 可变数据类型
    arr2 = np.array([[7, 8, 9], [10, 11, 12]]) # 可变数据类型

    [[1 2 3]
    [4 5 6]]
    [[ 7 8 9]
    [10 11 12]]

    
     
    
    ## 三、通过函数创建numpy数组
    
    | 方法       | 详解                                  |
    | ---------- | ------------------------------------- |
    | array()    | 将列表转换为数组,可选择显式指定dtype |
    | arange()   | range的numpy版,支持浮点数            |
    | linspace() | 类似arange(),第三个参数为数组长度    |
    | zeros()    | 根据指定形状和dtype创建全0数组        |
    | ones()     | 根据指定形状和dtype创建全1数组        |
    | eye()      | 创建单位矩阵                          |
    | empty()    | 创建一个元素全随机的数组              |
    | reshape()  | 重塑形状                              |
    
    ##四、 numpy数组运算
    
    | 方法       | 详解                                  |
    | ---------- | ------------------------------------- |
    | array()    | 将列表转换为数组,可选择显式指定dtype |
    | arange()   | range的numpy版,支持浮点数            |
    | linspace() | 类似arange(),第三个参数为数组长度    |
    | zeros()    | 根据指定形状和dtype创建全0数组        |
    | ones()     | 根据指定形状和dtype创建全1数组        |
    | eye()      | 创建单位矩阵                          |
    | empty()    | 创建一个元素全随机的数组              |
    | reshape()  | 重塑形状                              |
    
    ## 五、重点
    
    **随机数种子:所有的随机数是按照随机数种子生成的**
    
     
    
    时间短则不变,时间长就变
    
     
    
    

    np.random.seed(int(time.time()))

    np.random.seed(1) #如果固定了就不会变

    arr1 = np.random.rand(3,4) # 可变数据类型

    print(arr1)

    
    

    rs = np.random.RandomState(1) #产生一个随机状态种子,seed为1

    print(rs.rand(3,4))


    [[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01]

    [1.46755891e-01 9.23385948e-02 1.86260211e-01 3.45560727e-01]

    [3.96767474e-01 5.38816734e-01 4.19194514e-01 6.85219500e-01]]

  • 相关阅读:
    Vue框架构造
    JavaScript-改变this指向
    前端发展史
    python篇第10天【For 循环语句】
    python篇第10天【While 循环语句】
    python篇第8天【运算符】
    python篇第6天【数据类型】
    python篇第5天【变量】
    Python篇函数总结【输出函数】
    python篇第3天【编码规范】
  • 原文地址:https://www.cnblogs.com/demiao/p/11385746.html
Copyright © 2020-2023  润新知