numpy机器学习是当今科技领域最热门的话题之一。作为一种强大的工具,Python语言在机器学习领域大放异彩。而在Python生态系 统中,NumPy库扮演着重要的角色,它提供了丰富的功能和高效的数据结构,使得机器学习任务更加便捷和高效。

特点:在 Python 中,我们有列表可以充当数组,但处理速度很慢。NumPy 旨在提供一个比传统 Python 列表快 50 倍的数组对象。NumPy 中的数组对象称为 ndarray,它提供了许多支持函数,使得处理 ndarray 非常容易。数组在数据科学中非常常用,因为速度和资源非常重要。NumPy 是一个 Python 库,部分用 Python 编写,但需要快速计算的大部分部分是用 C 或 C++ 编写的。

  1. 数组:NumPy 通常在 np 别名下导入。

    1. 一维数组:np.array、np.arange、np.linspace

      import numpy as np
      
      ar1 = np.array([1,2,3,4,5,6])
      # print(ar1)
      
      ar2 = np.array(range(1,10))
      # print(ar2)
      
      ar3 = np.arange(1,10)
      # print(ar3)
      
      # 使用线性等分向量,将1-20等分为5份
      ar4 = np.linspace(1,20,5)
      # print(ar4)
    2. 二维数组:

      import numpy as np
      
      list1 = [[1,2,3],[4,5,6]]
      ar1 = np.array(list1)
      # print(ar1)
      
      list2 = [(1,2),(3,4),(5,6)]
      ar2 = np.array(list2)
      # print(ar2)
      
      # 布尔类型会自动转换
      list3 = [(7, 8), (9, False), (11, True)]
      ar3 = np.array(list3)
      # print(ar3)
      
      # 创建一个3行4列的,元素全为0的数组
      ar4 = np.zeros((3, 4))
      # print(ar4)
      
      # 创建指定值的数组
      ar5 = np.full((3, 4), 5)
      # print(ar5)
    3. 数组的方法:reshape 修改形状、flatten 将多维数组变为一维数组

      import numpy as np
      
      # 创建1-5范围的数组
      a = np.array([1, 2, 3, 4, 5])
      # 一维数组里面有几个元素
      # print(a.shape)
      # 维度
      # print(a.ndim)
      # 返回一个数字,表示array中所有数据元素的数目
      # print(a.size)
      
      # 创建一个2行5列的二维数组
      b = np.arange(10).reshape(2, 5)
      # print(b)
      
      c = b.reshape(10)
      # 将二维数组变为一维数组
      # print(c)
      
      a1 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
      b1 = np.ones((4, 3, 2))
      # print(a1)
      # print(b1)
      
      # 将多维数组变为一维数组
      # print(a1.flatten())
      # print(b1.flatten())
    4. 数组的运算:常用的运算,在numpy中同样适用

      import numpy as np
      
      """
      特点:数组的运算会将每一个元素都进行运算
      """
      a = np.arange(10).reshape(2, 5)
      # print(a)
      # print(a + 1)
      # print(a * 3)
      
      """
      维度一样:逐元运算,相同位置元素进行运算 元素个数要一致
      """
      b1 = np.array([30, 40, 50, 60])
      b2 = np.array([0, 1, 2, 3])
      # print(b1 + b2)
      # print(b1 * b2)
      
      """
      维度不一样:可以计算,在某一维度上的形状要一致
      """
      c1 = np.arange(1, 19).reshape(3, 6)
      c2 = np.arange(6)
      # print(c1)
      # print(c2)
      # print(c1 + c2)
      
    5. 索引和切片:取值和切片的方式跟列表基本一致

      import numpy as np
      
      """
      一维数组
      """
      a = np.arange(10)**3
      # print(a)
      # 索引取值
      # print(a[3])
      
      # 负索引
      # print(a[-7])
      
      # 切片,取某一段值 左闭右开
      # print(a[2:5])
      
      # 起始不写默认从0开始,结束不写默认就是整个数组
      # print(a[:])
      
      # 根据步长取值
      # print(a[::2])
      
      # 修改元素
      a[2] = 100
      # print(a)
      
      # 倒序 步长为负数就是倒序,但是只能写步长
      # print(a[::-2])
      
      """
      二维数组
      """
      b = (np.arange(1, 17)**2).reshape(4, 4)
      # print(b)
      
      # 索引为1的行
      # print(b[1])
      
      # 索引为1的列,逗号前是行,逗号后是列
      # print(b[:, 1])
      
      # 取出元素 25 81,索引为1-3的行(左闭右开)和索引为0的列
      # print(b[1:3, 0])
      
      # 取出 36 49 100 121
      # print(b[1:3, 1:3])
    6. 常用统计函数

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐