NumPy 完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
NumPy 是 Python 进行数值计算的基础包,它提供了一个高性能的多维数组对象 ndarray
,以及用于操作这些数组的多种工具和函数。NumPy 的强大之处在于它的数组运算速度比 Python 的原生列表快得多。此外,NumPy 还支持大量的数学函数,使得科学计算变得更加高效和简便。
1. 安装 NumPy
在使用 NumPy 之前,需要确保已安装该库。可以通过以下命令安装:
pip install numpy
2. 创建 NumPy 数组
NumPy 提供了多种方法来创建数组。我们可以使用 array()
函数来从现有的列表或元组创建数组,或者使用特定的函数来创建特定形状的数组。
import numpy as np
# 从列表创建数组
a = np.array([1, 2, 3])
print(a) # 输出: [1 2 3]
# 创建零数组
b = np.zeros((2, 3))
print(b)
# 输出:
# [[0. 0. 0.]
# [0. 0. 0.]]
# 创建单位数组
c = np.eye(3)
print(c)
# 输出:
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
# 创建随机数组
d = np.random.rand(2, 2)
print(d)
3. 数组属性
NumPy 数组有一些非常重要的属性,包括 shape
、dtype
和 ndim
。
print("数组 b 的形状:", b.shape) # 输出: (2, 3)
print("数组 d 的数据类型:", d.dtype) # 输出: float64
print("数组 c 的维度:", c.ndim) # 输出: 2
4. 数组的运算
NumPy 数组支持多种数学运算,包括加、减、乘、除等运算。这些运算都是逐元素进行的,这使得数组运算非常高效。
# 数组之间的运算
e = np.array([1, 2, 3])
f = np.array([4, 5, 6])
print("相加:", e + f) # 输出: [5 7 9]
print("相减:", e - f) # 输出: [-3 -3 -3]
print("相乘:", e * f) # 输出: [ 4 10 18]
print("相除:", e / f) # 输出: [0.25 0.4 0.5 ]
5. 数组的切片与索引
NumPy 支持灵活的切片与索引方式,允许用户在多维数组中提取子数组。
# 创建一个 3x3 的数组
g = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 提取第一行
print(g[0]) # 输出: [1 2 3]
# 提取第一列
print(g[:, 0]) # 输出: [1 4 7]
# 提取子数组
print(g[0:2, 1:3]) # 输出: [[2 3]
# [5 6]]
6. 数组的变形
NumPy 允许用户对数组进行变形,使得我们可以改变数组的形状,而不改变数据本身。
h = np.array([[1, 2, 3, 4],
[5, 6, 7, 8]])
# 变形为 4x2 数组
h_reshaped = h.reshape((4, 2))
print(h_reshaped)
# 输出:
# [[1 2]
# [3 4]
# [5 6]
# [7 8]]
结论
NumPy 是 Python 数据科学和机器学习领域中不可或缺的工具。通过掌握 NumPy 数组的创建、运算、切片与变形操作,您将能在科学计算中更加高效。接下来的指南将介绍 NumPy 中更复杂的功能,如广播、线性代数运算等内容。希望本文能够帮助您快速入门 NumPy 的使用!