• numpy的一点学习


    1、Numpy模块

    NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度。

    • 机器学习模型:在编写机器学习算法时,需要对矩阵进行各种数值计算。例如矩阵乘法、换位、加法等。NumPy提供了一个非常好的库,用于简单(在编写代码方面)和快速(在速度方面)计算。NumPy数组用于存储训练数据和机器学习模型的参数。
    • 图像处理和计算机图形学:计算机中的图像表示为多维数字数组。NumPy成为同样情况下最自然的选择。实际上,NumPy提供了一些优秀的库函数来快速处理图像。例如,镜像图像、按特定角度旋转图像等。
    • 数学任务NumPy对于执行各种数学任务非常有用,如数值积分、微分、内插、外推等。因此,当涉及到数学任务时,它形成了一种基于Python的MATLAB的快速替代。

    由于是第三方模块,所以要进行下载: pip insatll numpy

    数组基础

    numpy主要就是围绕着数组进行展开;主要用于矢量和矩阵、线性代数等数学运算

    import numpy
    my_array = numpy.array([1,2,3,4,5])
    print(my_array)
    # 生成数组
    [1 2 3 4 5]
    #  my_array 是一个包含5个元素的数组。
    print(my_array.shape)  # (5, )     # 数组的尺寸, 几行几列
    # 打印各个元素
    print(my_array[0])  # 1
    # 修改数组元素
    my_array[0] = -1
    print(my_array)
    
    # 快捷创建就是
    my_array = numpy.arange(10)
    print(my_array)
    # 输出为:[0 1 2 3 4 5 6 7 8 9]    注意: arange有点类似于Python中的range,都是顾头不顾尾
    

    二维数组的创建

    import numpy
    array = numpy.arange(10).reshape(5,2)  # reshape值得是重塑函数
    print(array)
    # 输出为:
    [[0 1]
     [2 3]
     [4 5]
     [6 7]
     [8 9]]
    此处: # reshape(5,2)的意思就是5代表的是数组的列数,2代表的是每个单独数组的元素为2个
    

    三维数组的创建

    import numpy
    array = numpy.arange(27).reshape(3,3,3)
    print(array)
    # 注意: 数组中的元素数量27必须是尺寸3*3*3的积
    # 输出为
    [[[ 0  1  2]
      [ 3  4  5]
      [ 6  7  8]]
    
     [[ 9 10 11]
      [12 13 14]
      [15 16 17]]
    
     [[18 19 20]
      [21 22 23]
      [24 25 26]]]
    

    dot()

    • 除了 dot() 之外,这些操作符都是对数组进行逐元素运算。比如 (a, b, c) + (d, e, f) 的结果就是 (a+d, b+e, c+f)。它将分别对每一个元素进行配对,然后对它们进行运算。它返回的结果是一个数组。注意,当使用逻辑运算符比如 “<” 和 “>” 的时候,返回的将是一个布尔型数组,这点有一个很好的用处,后边我们会提到。

      dot() 函数计算两个数组的点积。它返回的是一个标量(只有大小没有方向的一个值)而不是数组。

      #它背后的一些数学知识

      dot()函数称为点积。理解这一点的最好方法是看下图,下图将表示它是如何进行计算的。

    • 我们使用dot函数来计算向量的内积,将向量乘以矩阵,并乘以矩阵。 dot既可以作为numpy模块中的函数,也可以作为数组对象的实例方法:

    • import numpy as np
      x = np.array([[1,2],[3,4]])
      y = np.array([[5,6],[7,8]])
      v = np.array([9,10])
      w = np.array([11, 12])
      print(v.dot(w))
      print(np.dot(v, w))
      print(x.dot(v))
      print(np.dot(x, v))
      # [[19 22]
      #  [43 50]]
      print(x.dot(y))
      print(np.dot(x, y)) 计算两个向量之间的点积
  • 相关阅读:
    Opaque data type--不透明类型
    swift class的动态派发
    swift class的虚函数表
    swift class的虚函数表、扩展、@objc修饰、虚函数的派发方式研究
    swift语言混编--语言交互的接口
    CPU指令分类
    CPU的内部架构和工作原理-原文
    cpu的组成及分工
    简单介绍 CPU 的工作原理
    php7开启强类型模式
  • 原文地址:https://www.cnblogs.com/liudemeng/p/10876047.html
Copyright © 2020-2023  润新知