形状和维度是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中数组的形状和维度对于数据的存储和操作非常重要。它们决定了数组中元素的排列方式和访问方式。
具体而言,数组的形状和维度决定了以下几个方面:
数据存储方式:数组的形状和维度决定了数据在内存中的存储方式。例如,在二维数组中,如果按行存储,则每一行的元素是连续存储的,如果按列存储,则每一列的元素是连续存储的。
数据访问方式:数组的形状和维度决定了数据的访问方式。例如,在二维数组中,可以按行或列访问元素,也可以按坐标访问元素。
数据操作方式:数组的形状和维度对于数组的操作非常重要。例如,可以使用形状和维度来实现数组的转置、重塑、合并等操作。
除此之外,形状和维度这两个概念在后续的文章中经常会使用,所以理解这两个概念对后续知识的学习非常重要。
本文链接:http://task.lmcjl.com/news/4352.html