Python NumPy 中文教程 – wiki基地

Python NumPy 中文教程:从入门到进阶

NumPy(Numerical Python)是 Python 科学计算的基础包。它提供了一个强大的 N 维数组对象 ndarray,以及用于处理这些数组的各种工具。NumPy 是更高层级科学计算库(如 SciPy、Pandas 和 Matplotlib)的核心依赖,因此理解 NumPy 的工作原理对于任何 aspiring data scientist 或 Python 开发者至关重要。

本教程将深入探讨 NumPy 的核心概念和功能,并通过丰富的示例演示其用法,旨在帮助你从入门到进阶掌握 NumPy。

一、NumPy ndarray:N 维数组对象

NumPy 的核心是 ndarray 对象,它是一个同构多维数组,也就是说,它包含相同类型的数据,并且这些数据按照固定的维度排列。ndarray 对象比 Python 内置的列表更高效,因为它存储在连续的内存块中,并且可以利用向量化操作进行快速计算。

  1. 创建 ndarray:

  2. np.array():从 Python 列表或元组创建 ndarray。

    “`python
    import numpy as np

    a = np.array([1, 2, 3]) # 一维数组
    b = np.array([[1, 2, 3], [4, 5, 6]]) # 二维数组
    “`

  3. np.zeros():创建全零数组。

    python
    zeros_array = np.zeros((2, 3)) # 2x3 的零数组

  4. np.ones():创建全一数组。

    python
    ones_array = np.ones((2, 3)) # 2x3 的一数组

  5. np.empty():创建未初始化的数组(内容是内存中的随机值)。

    python
    empty_array = np.empty((2, 3))

  6. np.arange():类似 Python 的 range(),创建等差数列。

    python
    arange_array = np.arange(10) # 0 到 9

  7. np.linspace():创建指定范围内等间距的数字序列。

    python
    linspace_array = np.linspace(0, 1, 5) # 0 到 1 之间 5 个等间距的数

  8. ndarray 属性:

  9. ndim:数组的维度。

  10. shape:数组的形状,以元组形式表示每个维度的大小。
  11. size:数组的元素总数。
  12. dtype:数组元素的数据类型。

    python
    print(b.ndim) # 输出:2
    print(b.shape) # 输出:(2, 3)
    print(b.size) # 输出:6
    print(b.dtype) # 输出:dtype('int64')

  13. 数据类型:

NumPy 支持各种数据类型,包括整数、浮点数、布尔值、复数等。可以使用 dtype 参数指定数据类型。

 ```python
 c = np.array([1, 2, 3], dtype=np.float64)
 ```

二、数组操作

  1. 索引和切片:

与 Python 列表类似,可以使用索引和切片访问 ndarray 的元素。

 ```python
 print(b[0, 1])  # 输出:2
 print(b[:, 1])  # 输出:[2 5]  第二列
 print(b[1, :])  # 输出:[4 5 6] 第二行
 ```
  1. 数组运算:

NumPy 支持 element-wise 运算,即对数组的每个元素进行相同的运算。

 ```python
 x = np.array([1, 2, 3])
 y = np.array([4, 5, 6])

 print(x + y)  # 输出:[5 7 9]
 print(x * y)  # 输出:[ 4 10 18]
 ```
  1. 广播机制:

当对不同形状的数组进行运算时,NumPy 会使用广播机制来扩展较小数组的维度,使其与较大数组匹配。

 ```python
 x = np.array([1, 2, 3])
 y = 2

 print(x * y)  # 输出:[2 4 6]
 ```
  1. 数组变形:

  2. reshape():改变数组的形状。

    python
    z = np.arange(6).reshape(2, 3)

  3. flatten():将多维数组转换为一维数组。

    python
    flat_array = z.flatten()

  4. transpose():转置数组。

    python
    transposed_array = z.transpose()

  5. 数组连接和分割:

  6. concatenate():连接多个数组。

    python
    a = np.array([1, 2])
    b = np.array([3, 4])
    c = np.concatenate((a, b)) # 输出:[1 2 3 4]

  7. split():分割数组。

    python
    x = np.arange(9)
    x1, x2, x3 = np.split(x, 3)

三、NumPy 函数和方法

NumPy 提供了大量的函数和方法用于数组操作,包括数学函数、统计函数、线性代数函数等。

  1. 数学函数:

  2. np.sin(), np.cos(), np.tan(), np.exp(), np.log() 等。

  3. 统计函数:

  4. np.mean():计算平均值。

  5. np.median():计算中位数。
  6. np.std():计算标准差。
  7. np.var():计算方差。

  8. 线性代数函数:

  9. np.dot():计算点积。

  10. np.linalg.inv():计算逆矩阵。
  11. np.linalg.det():计算行列式。

四、高级主题

  1. 随机数生成:

np.random 模块提供各种随机数生成函数。

  1. 线性代数:

np.linalg 模块提供线性代数运算函数。

  1. 傅里叶变换:

np.fft 模块提供快速傅里叶变换函数。

五、总结

本教程涵盖了 NumPy 的核心概念和常用功能。通过学习和实践这些知识,你将能够有效地使用 NumPy 进行数据处理和科学计算。 希望本教程能帮助你开启 Python 数据科学之旅。 建议进一步学习官方文档和相关书籍,深入了解 NumPy 的更多高级特性,并将其应用于实际项目中。 持续的学习和实践是掌握 NumPy 并将其应用于解决复杂问题的关键。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部