AI学习路线图:NumPy 基础
NumPy 是 Python 科学计算的核心库。它提供了高性能的多维数组对象和用于处理这些数组的工具,是几乎所有 AI 和数据科学库(如 Pandas、Scikit-learn、TensorFlow)的基础。
1. 多维数组 (ndarray)
NumPy 的核心是 `ndarray` 对象,它是一个快速、灵活的多维数组,用于存储同类型的数据。我们可以通过 `.shape` 和 `.dtype` 属性查看其维度和数据类型。
动手试试:
点击按钮,创建一个 2x3 的 NumPy 数组并查看其属性。
import numpy as np
# 从列表创建数组
data = [[1, 2, 3], [4, 5, 6]]
arr = np.array(data)
print("数组:")
print(arr)
print(f"形状 (shape): {arr.shape}")
print(f"类型 (dtype): {arr.dtype}")
运行结果:
2. 向量化计算
向量化是指对整个数组执行批量操作,而无需编写显式的循环。这不仅使代码更简洁,而且由于底层使用 C 语言实现,运行速度也快得多。
动手试试:
对数组中的每个元素执行一个数学运算。输入一个数字,然后点击按钮。
arr = np.array([[1, 2], [3, 4]])
# 向量化加法
result = arr + 10
print("原数组:")
print(arr)
print("计算结果:")
print(result)
运行结果:
3. 矩阵运算
NumPy 提供了丰富的线性代数运算功能。矩阵乘法是其中最常见的操作之一,可以使用 `@` 运算符或 `np.dot()` 函数。
动手试试:
计算下面两个矩阵的乘积。
A = np.array([[1, 2, 3], [4, 5, 6]])
B = np.array([[7, 8], [9, 10], [11, 12]])
# 矩阵乘法
result = A @ B
print("矩阵 A (2x3):")
print(A)
print("矩阵 B (3x2):")
print(B)
print("结果 A @ B (2x2):")
print(result)
运行结果:
4. 广播 (Broadcasting)
广播是 NumPy 处理不同形状数组之间算术运算的强大机制。它允许 NumPy 在执行操作时,隐式地扩展较小数组的形状以匹配较大数组的形状。
动手试试:
将一个一维数组加到一个二维数组的每一行。
# 一个 3x3 数组
A = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 一个 1x3 数组
b = np.array([10, 20, 30])
# 广播 b 到 A 的每一行
result = A + b
print("结果:")
print(result)
运行结果: