• Python中NumPy的常见用法


    NumPy(Numerical Python的简称)是Python中用于处理数组和矩阵运算的库。它提供了大量的数学函数来对数组进行操作,使得在Python中进行数值计算变得非常高效和方便。本文将介绍NumPy的一些常见用法,帮助读者更好地理解和使用这个强大的库。

    一、安装NumPy

    首先,确保你已经安装了NumPy库。如果还没有安装,可以通过pip进行安装:

    pip install numpy
    
    • 1

    二、创建数组

    NumPy的主要数据结构是ndarray(N-dimensional array),它用于存储同一类型的数据元素的集合。你可以使用NumPy的函数来创建数组。

    import numpy as np
    
    # 创建一个一维数组
    arr1 = np.array([1, 2, 3, 4, 5])
    print(arr1)
    
    # 创建一个二维数组(矩阵)
    arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print(arr2)
    
    # 创建一个特定类型的数组(例如,浮点型)
    arr3 = np.array([1.0, 2.0, 3.0], dtype=np.float32)
    print(arr3)
    
    # 使用zeros和ones函数创建全零和全一的数组
    zeros_arr = np.zeros((3, 3))
    ones_arr = np.ones((2, 2))
    print(zeros_arr)
    print(ones_arr)
    
    # 使用arange函数创建具有指定范围和步长的数组
    arange_arr = np.arange(0, 10, 2)
    print(arange_arr)
    
    # 使用linspace函数创建具有指定数量和范围的等差数列数组
    linspace_arr = np.linspace(0, 1, 5)
    print(linspace_arr)
    
    • 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
    • 27

    三、数组的基本操作

    NumPy提供了丰富的数组操作函数,包括索引、切片、形状修改、数学运算等。

    # 索引和切片
    print(arr2[0, 1])  # 访问第一行第二列的元素
    print(arr2[:, 1])  # 访问所有行的第二列
    print(arr2[1:3, :])  # 切片操作,获取第二行到第三行(不包括第三行)的所有列
    
    # 形状修改
    arr2_reshape = arr2.reshape(3, 1, 3)  # 将二维数组重塑为三维数组
    print(arr2_reshape)
    
    # 数学运算
    arr4 = np.array([4, 5, 6])
    sum_arr = arr1 + arr4  # 对应元素相加
    product_arr = arr1 * arr4  # 对应元素相乘
    print(sum_arr)
    print(product_arr)
    
    # 广播机制
    broadcast_arr = arr1 + 5  # 将标量与数组相加,自动扩展标量以匹配数组形状
    print(broadcast_arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    四、统计和聚合操作

    NumPy还提供了许多用于数组统计和聚合的函数。

    # 计算数组的总和、均值、标准差等
    sum_val = np.sum(arr1)
    mean_val = np.mean(arr1)
    std_val = np.std(arr1)
    print(sum_val, mean_val, std_val)
    
    # 计算数组的最大值、最小值、以及它们的索引位置
    max_val = np.max(arr1)
    min_val = np.min(arr1)
    max_index = np.argmax(arr1)
    min_index = np.argmin(arr1)
    print(max_val, min_val, max_index, min_index)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    五、线性代数运算

    NumPy还包含用于线性代数的函数,可以方便地进行矩阵运算。

    # 矩阵转置
    transpose_arr = arr2.T
    print(transpose_arr)
    
    # 矩阵乘法
    matrix_mult = np.dot(arr2, arr2.T)
    print(matrix_mult)
    
    # 计算矩阵的逆和行列式
    inv_arr = np.linalg.inv(arr2)  # 注意:arr2需要是可逆的
    det_val = np.linalg.det(arr2)
    print(inv_arr)
    print(det_val)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    [笔记]MySQL 插入导致死锁
    数组还是HashSet?
    JAVA-POI && easyEXCEL
    Weblogic SSRF 漏洞复现
    PyQt5快速开发与实战 10.1 获取城市天气预报
    Zookeeper经典应用场景实战
    LeetCode每日一题(1807. Evaluate the Bracket Pairs of a String)
    ESP32 ESP-IDF TFT-LCD(ST7735 128x160) LVGL演示
    【P58】JMeter 简单数据写入器(Simple Data Writer)
    GitLab配置
  • 原文地址:https://blog.csdn.net/Dxy1239310216/article/details/138145387