第 6 天:NumPy 简介

NumPy 简介

什么是 NumPy?

NumPy是Python中用于数值计算的强大库。它提供对数组、矩阵和许多数学函数的支持,以便有效地对这些数据结构进行操作。 NumPy 因其性能和易用性而广泛应用于数据科学、机器学习和科学计算。

NumPy 的主要特点

  • N 维数组:NumPy 的主要功能是它的 N 维数组对象 ndarray,它是一种强大且通用的数据结构。
  • 数学函数:提供广泛的数学函数来对数组执行操作。
  • 广播:允许对不同形状的数组进行矢量化操作。
  • 线性代数:支持线性代数运算,包括矩阵乘法和分解。
  • 随机采样:用于生成随机数和从分布中采样的工具。

安装和导入 NumPy

安装 NumPy

确保您已安装 NumPy。如果尚未安装,您可以使用 pip 安装它:

1
pip install numpy

导入 NumPy

在 Python 脚本中导入 NumPy 库:

1
import numpy as np

创建数组

从1个 Python 列表创建 NumPy 数组:

1
2
array = np.array([1, 2, 3, 4, 5])
print("Array:", array)

数组运算

对 NumPy 数组执行基本算术运算:

1
2
3
4
5
6
7
8
9
10
11
array = np.array([1, 2, 3, 4, 5])
print("Array:", array)

# 每一个元素加10
print("Array + 10:", array + 10)

# 每一个元素乘2
print("Array * 2:", array * 2)

# 每一个元素平方
print("Array squared:", array ** 2)

数组索引和切片

使用索引和切片访问元素和子数组:

1
2
3
4
5
6
7
8
9
10
array = np.array([1, 2, 3, 4, 5])

# 访问第一个元素
print("First element:", array[0])

# 访问下标为1到3的元素
print("Elements from index 1 to 3:", array[1:4])

# 访问最后一个元素
print("Last element:", array[-1])

重塑数组

将数组重塑为不同的维度:

1
2
3
array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
reshaped_array = array.reshape(3, 3)
print("Reshaped array (3x3):\n", reshaped_array)

总和、平均值和标准差

使用 NumPy 的内置数学函数:

1
2
3
4
5
6
7
8
9
10
array = np.array([1, 2, 3, 4, 5])

# 计算所有元素的和
print("Sum:", np.sum(array))

# 计算所有元素的平均值
print("Mean:", np.mean(array))

# 计算标准差
print("Standard Deviation:", np.std(array))

练习 1:创建 4x4 单位矩阵

1
2
identity_matrix = np.eye(4)
print("4x4 单位矩阵:\n", identity_matrix)

练习 2:生成 10 个 0 到 1 之间的随机数的数组

1
2
random_array = np.random.random(10)
print("10 个 0 到 1 之间的随机数的数组:\n", random_array)

练习 3:创建一个 3x3 矩阵,其值范围为 0 到 8

1
2
matrix = np.arange(9).reshape(3, 3)
print("一个其值范围为 0 到 8的 3x3 矩阵,:\n", matrix)

练习 4:创建大小为 10 的随机向量并对其进行排序

1
2
3
4
random_vector = np.random.random(10)
sorted_vector = np.sort(random_vector)
print("大小为 10 的随机向量:\n", random_vector)
print("向量排序:\n", sorted_vector)

其他资源

有关更深入的信息和示例,请参阅官方 NumPy 文档

概括

  • 学习:了解 NumPy 数值计算的基础知识。
  • 请遵循:完成 NumPy 快速入门教程。
  • 实施:使用 NumPy 数组练习基本运算。

如果您需要任何特定练习或概念的帮助,请随时询问!