📅  最后修改于: 2023-12-03 14:44:48.628000             🧑  作者: Mango
NumPy 是一个基于 Python 的科学计算库,它提供了一个高性能的多维数组对象和用于处理这些数组的工具。随着数据处理和科学计算的需求日益增长,NumPy 已成为 Python 生态系统中不可或缺的重要组成部分。
在 NumPy 中,一个数组的维度被定义为是一组整数,分别描述了数组在每个维度上的长度。例如,一个二维数组可以被定义为一个二元组 (m, n),其中 m 和 n 分别表示数组在第一维和第二维的长度。
在 NumPy 中创建多维数组有多种方式,其中最基础的方式是使用 Python 的列表和元组。可以通过将这些结构传递给 Numpy 的 array() 函数来创建数组。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
输出:
[[1 2 3]
[4 5 6]]
在这个例子中,我们构造了一个二维数组,该数组的第一维长度为 2,第二维长度为 3。
在 Numpy 中,可以通过查看数组的 shape 属性来获取数组的每个维度的长度信息。例如:
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)
输出:
(2, 3)
这意味着数组 a 由 2 个长度为 3 的一维数组组成。
可以使用 ndim 属性来获取数组的维度数。例如:
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.ndim)
输出:
2
这表示数组 a 是一个二维数组。
在 Numpy 中,可以像访问 Python 列表中的元素一样,通过索引和切片来访问数组中的元素。
例如,要访问一个二维数组 a 的第一个元素 (0, 0),可以使用以下代码:
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a[0, 0])
输出:
1
要访问二维数组 a 的第一行,可以采用以下方式:
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a[0, :])
输出:
[1 2 3]
这个示例用了一个冒号来表示数组的第二维应被完全切片。也就是说,它返回数组的第一行的所有元素。
Numpy 提供了各种用于改变数组维度的操作。其中最常用的是 reshape() 函数。该函数返回一个具有给定形状的新数组,而不改变原始数组。
a = np.array([1, 2, 3, 4, 5, 6])
b = a.reshape((2, 3))
print(b)
输出:
[[1 2 3]
[4 5 6]]
这个示例中,我们将一维数组 a 转换为一个二维数组。具体来说,它将 a 调整为 (2, 3) 形状的数组,即两行,三列。
当计算两个形状不同的数组时,NumPy 使用广播机制。广播是一种自动完成不同形状数组之间的算术运算的方法。
例如,考虑以下情况:
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([1, 2, 3])
print(a + b)
输出:
[[2 4 6]
[5 7 9]]
在这个示例中,虽然数组 a 和 b 的形状不同,但是 NumPy 自动将 b 广播到 a 的形状。
在这篇文章中,我们介绍了 NumPy 中的维度代码。我们讨论了如何创建、访问和操作多维数组,并介绍了广播机制。这些技术都是使用 NumPy 来进行科学计算的基础。