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)
运行结果: