超详细的Numpy基础教程!!!

Numpy是一个开源的Python库,用于支持大型多维数组和矩阵运算,同时提供了大量的数学函数库。它是科学计算中非常重要的工具。Numpy在数据科学中非常重要,因为它提供了高效的数组处理能力和广泛的数学函数库,这对于处理大规模数据集、进行科学计算和机器学习等任务至关重要。

一、安装与设置

  • 如何安装Numpy
    pip install numpy
  • 验证安装的方法
    import numpy
    print(numpy.__version__)
    

二、Numpy数组基础 

  • 。创建数组: Numpy允许使用array函数从列表创建数组
    import numpy as np
    arr = np.array([1, 2, 3])
    
  • 数组的属性:数组有多个属性,如shape(形状)、size(大小)和dtype(数据类型)。
    print(arr.shape)  # 输出数组的形状
    print(arr.size)   # 输出数组中元素的总数
    print(arr.dtype)  # 输出数组元素的数据类型
    
  • 索引与切片:可以通过索引访问数组中的元素,或使用切片来访问子数组。
    print(arr[0])       # 输出第一个元素
    print(arr[-1])      # 输出最后一个元素
    print(arr[0:2])     # 输出前两个元素
    

    三、数组操作

  • 数组的形状改变:使用reshape方法可以改变数组的形状,而不改变其数据。
    import numpy as np
    arr = np.array([1, 2, 3, 4, 5, 6])
    new_arr = arr.reshape(2, 3)
    print(new_arr)
    
  • 数组的堆叠与分割:
  • 堆叠:stack函数可以沿着新的轴加入一系列的数组。
    a = np.array([1, 2, 3])
    b = np.array([4, 5, 6])
    c = np.stack((a, b))
    print(c)
    
  • 分割:split函数可以将一个数组分割成多个子数组。
    d = np.array([1, 2, 3, 4, 5, 6])
    e, f = np.split(d, [3])
    print(e)
    print(f)
    

    这会将数组d在第三个元素处分割成两个子数组ef

  • 数组的广播:广播是Numpy中的一个强大特性,它允许不同形状的数组进行数学运算。
    g = np.array([1, 2, 3])
    h = 2
    print(g * h)
    

    即使h不是数组,Numpy也会将其扩展到与g相同的大小,并执行逐元素乘法。

 四、数学运算

  • 基本数学函数: Numpy提供了许多数学函数,如加法、减法、乘法和除法。
    import numpy as np
    a = np.array([1, 2, 3])
    print(np.add(a, 1))  # 对数组每个元素加1
    print(np.subtract(a, 1))  # 对数组每个元素减1
    
  • 线性代数运算: Numpy支持多种线性代数运算,如矩阵乘法和求解线性方程组。
    b = np.array([[1, 2], [3, 4]])
    c = np.array([[5, 6], [7, 8]])
    print(np.dot(b, c))  # 矩阵乘法
    
  • 统计方法: Numpy提供了一系列统计方法,用于计算平均值、中位数、标准差等。
    d = np.array([1, 2, 3, 4, 5])
    print(np.mean(d))  # 计算平均值
    print(np.median(d))  # 计算中位数
    print(np.std(d))  # 计算标准差
    

    五、高级特性

  • 掩码数组:掩码数组是Numpy中的一种特殊数组,它可以让你隐藏或“掩码”数组中的某些数据。
    import numpy as np
    arr = np.array([1, 2, 3, -1, -2, -3])
    mask = arr < 0
    print(arr[mask])  # 只显示小于0的元素
    
  • 结构化数组:结构化数组允许你定义一个数组,其中每个元素都可以是不同类型的字段。
    structured_arr = np.array([(1, 'First', 0.5), (2, 'Second', 1.3)],
                              dtype=[('id', 'i4'), ('position', 'a6'), ('value', 'f4')])
    print(structured_arr[0]['position'])  # 输出第一个元素的'position'字段
    

    六、实例:使用Numpy解决问题

    • 实际案例:假设你是数据分析师,需要分析一组股票价格的数据,找出价格最高的股票和计算所有股票价格的平均值。
    • 1.数据准备: 首先,我们创建一个包含股票价格的Numpy数组。
      import numpy as np
      stock_prices = np.array([120.5, 90.3, 45.8, 150.1, 180.4])
      
    • 2.分析:找出价格最高的股票:
      max_price = np.max(stock_prices)
      max_index = np.argmax(stock_prices)
      print(f"最高股票价格为:{max_price}, 位于索引:{max_index}")
      

      计算所有股票价格的平均值:

      average_price = np.mean(stock_prices)
      print(f"股票价格的平均值为:{average_price}")
      

      运行上述代码,你将得到最高股票价格及其索引位置,以及所有股票价格的平均值。

    • 当然,这只是一个非常简单的运用Numpy的小案例,想实现其他功能可以根据自己的需要运用Numpy库。

  • 23
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会爬虫的闲鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值