Python 课程5-NumPy库

        在数据处理和科学计算中,NumPy 是一个非常强大且基础的库。除了基本的创建数组功能之外,NumPy 提供了许多强大的函数和方法,用于执行高级的矩阵运算、统计分析、逻辑操作等。以下是一些常用且非常有用的 NumPy 指令,涵盖了创建数组、操作数组、数学运算、矩阵操作等方面。


NumPy 常用指令

1. 创建数组
  • array():从列表或元组创建一个 NumPy 数组。

    arr = np.array([1, 2, 3])
    print(arr)  # 输出:[1 2 3]
    

  • zeros():创建一个全零数组。

    zeros_arr = np.zeros((3, 3))
    print(zeros_arr)
    

  • ones():创建一个全一数组。

    ones_arr = np.ones((2, 3))
    print(ones_arr)
    

  • empty():创建一个空数组(未初始化,包含任意值)。

    empty_arr = np.empty((2, 2))
    print(empty_arr)
    

  • arange():生成等差数列。

    arange_arr = np.arange(0, 10, 2)
    print(arange_arr)  # 输出:[0 2 4 6 8]
    

  • linspace():生成在指定范围内均匀分布的值。

    lin_arr = np.linspace(0, 1, 5)
    print(lin_arr)  # 输出:[0.   0.25 0.5  0.75 1.  ]
    

  • eye():创建单位矩阵(对角线为 1,其余元素为 0)。

    identity_matrix = np.eye(3)
    print(identity_matrix)
    

2. 数学运算
  • sum():计算数组元素的和。

    arr = np.array([1, 2, 3, 4])
    print(np.sum(arr))  # 输出:10
    

  • mean():计算数组元素的平均值。

    print(np.mean(arr))  # 输出:2.5
    

  • std():计算数组元素的标准差。

    print(np.std(arr))  # 输出:1.118033988749895
    

  • min()max():找出数组中的最小值和最大值。

    print(np.min(arr))  # 输出:1
    print(np.max(arr))  # 输出:4
    

  • prod():计算数组所有元素的乘积。

    print(np.prod(arr))  # 输出:24
    

3. 数组操作
  • reshape():改变数组的形状,而不改变其数据。

    arr = np.array([1, 2, 3, 4, 5, 6])
    reshaped_arr = arr.reshape(2, 3)  # 变成 2 行 3 列
    print(reshaped_arr)
    

  • transpose():转置矩阵。

    matrix = np.array([[1, 2, 3], [4, 5, 6]])
    transposed_matrix = matrix.transpose()
    print(transposed_matrix)
    

  • flatten():将多维数组展平成一维数组。

    flat_arr = reshaped_arr.flatten()
    print(flat_arr)  # 输出:[1 2 3 4 5 6]
    

  • concatenate():连接两个或多个数组。

    arr1 = np.array([1, 2])
    arr2 = np.array([3, 4])
    concatenated = np.concatenate((arr1, arr2))
    print(concatenated)  # 输出:[1 2 3 4]
    

  • split():将数组分割成多个子数组。

    split_arr = np.split(arr, 3)
    print(split_arr)  # 输出:[array([1, 2]), array([3, 4]), array([5, 6])]
    

4. 逻辑与条件运算
  • where():根据条件返回数组中的元素。

    arr = np.array([1, 2, 3, 4, 5])
    result = np.where(arr > 3, '大于 3', '小于等于 3')
    print(result)  # 输出:['小于等于 3' '小于等于 3' '小于等于 3' '大于 3' '大于 3']
    

  • all()any():检查数组中是否所有元素为 True,或是否有任一元素为 True。

    bool_arr = np.array([True, False, True])
    print(np.all(bool_arr))  # 输出:False
    print(np.any(bool_arr))  # 输出:True
    

5. 随机数生成
  • random.rand():生成 0 到 1 之间的均匀分布随机数。

    rand_arr = np.random.rand(2, 2)
    print(rand_arr)
    

  • random.randn():生成服从标准正态分布的随机数。

    randn_arr = np.random.randn(2, 3)
    print(randn_arr)
    

  • random.randint():生成指定范围内的随机整数。

    randint_arr = np.random.randint(0, 10, size=(3, 3))
    print(randint_arr)
    

6. 广播机制

NumPy 支持不同形状的数组之间进行算术运算,这是 NumPy 的广播机制。

7. 矩阵运算
  • dot():进行矩阵乘法运算。

    mat1 = np.array([[1, 2], [3, 4]])
    mat2 = np.array([[5, 6], [7, 8]])
    result = np.dot(mat1, mat2)
    print(result)  # 输出:[[19 22] [43 50]]
    

  • inv():计算矩阵的逆(需要 linalg 模块)。

    from numpy.linalg import inv
    matrix = np.array([[1, 2], [3, 4]])
    inverse_matrix = inv(matrix)
    print(inverse_matrix)
    

  • det():计算矩阵的行列式。

    from numpy.linalg import det
    determinant = det(matrix)
    print(determinant)
    

  • eig():计算矩阵的特征值和特征向量。

    from numpy.linalg import eig
    values, vectors = eig(matrix)
    print("特征值:", values)
    print("特征向量:", vectors)
    


结论

        NumPy 是 Python 科学计算的核心库之一,其功能远不止创建数组和基本的数学运算。通过上述指令,你可以高效地进行数组操作、矩阵运算、随机数生成以及逻辑运算等。对于需要处理大量数据的项目,掌握 NumPy 的这些强大功能,可以显著提升程序的性能和开发效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值