📜  numpy 中的维度代码 - Python (1)

📅  最后修改于: 2023-12-03 14:44:48.628000             🧑  作者: Mango

Numpy 中的维度代码

简介

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 来进行科学计算的基础。