NumPy 数组的形状和维度详解

NumPy中数组的形状和维度是什么?

形状维度是NumPy数组的一个非常重要的概念,它们描述了NumPy数组中元素的排列方式。

其中:

  • 形状描述的是数组中每个维度的大小,以一个元组形式表示。例如,一个二维数组的形状可以表示为(3,4),表示它有3行和4列。

  • 维度是描述的是数组中的轴数。例如,一个一维数组有一个轴,一个二维数组有两个轴,一个三维数组有三个轴,以此类推。

如下图所示,描绘的就是一维到三维数组的形状与维度的变化:

而且在NumPy中,可以使用shape属性获取数组的形状,使用ndim属性获取数组的维度。

例如,对于一个二维数组a,可以使用以下代码查看其形状和维度:

import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)  # 输出 (2, 3)
print(a.ndim)  # 输出 2

三维数组也可以输出出来:

import numpy as np

b = np.array([[[1,2,3],[1,2]],[[1,2],[1,2]]])
print(b.shape)  # 输出 (2, 2, 2)
print(b.ndim)  # 输出 3

需要注意的是,修改数组形状或维度可能会改变其数据。使用reshape()函数可以改变数组的形状,例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.reshape((3, 2))
print(b)  # 输出 [[1 2], [3 4], [5 6]]

使用newaxis关键字可以添加新的轴,例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
c = a[np.newaxis, :]
print(c.shape)  # 输出 (1, 2, 3)

这将使数组a成为一个三维数组,第一维大小为1。在这个示例中,新的轴添加在最前面,也可以添加在其他位置,例如:

a = np.array([[1, 2, 3], [4, 5, 6]])
d = a[:, np.newaxis]
print(d.shape)  # 输出 (2, 1, 3)

NumPy 数组形状、维度的作用

NumPy中数组的形状和维度对于数据的存储和操作非常重要。它们决定了数组中元素的排列方式和访问方式。

具体而言,数组的形状和维度决定了以下几个方面:

  1. 数据存储方式:数组的形状和维度决定了数据在内存中的存储方式。例如,在二维数组中,如果按行存储,则每一行的元素是连续存储的,如果按列存储,则每一列的元素是连续存储的。

  2. 数据访问方式:数组的形状和维度决定了数据的访问方式。例如,在二维数组中,可以按行或列访问元素,也可以按坐标访问元素。

  3. 数据操作方式:数组的形状和维度对于数组的操作非常重要。例如,可以使用形状和维度来实现数组的转置、重塑、合并等操作。

除此之外,形状和维度这两个概念在后续的文章中经常会使用,所以理解这两个概念对后续知识的学习非常重要。

本文链接:https://my.lmcjl.com/post/19665.html

展开阅读全文

4 评论

留下您的评论.