numpy学习(3)--numpy 的维度
在NumPy中,数组的维度(dimension)指的是数组的轴(axes)的数量。维度也可以理解为数组的秩(rank)。数组的维度决定了它的形状(shape)。NumPy中的数组可以是一维的、二维的、三维的,甚至可以有更高的维度。让我们逐个了解这些维度。:一维数组是最简单的数组形式,它只有一个轴。可以将一维数组想象成线性排列的元素序列。:二维数组具有两个轴,通常可以看作是矩阵。它有行(row)和列
在NumPy中,数组的维度(dimension)指的是数组的轴(axes)的数量。维度也可以理解为数组的秩(rank)。数组的维度决定了它的形状(shape)。
NumPy中的数组可以是一维的、二维的、三维的,甚至可以有更高的维度。让我们逐个了解这些维度。
-
一维数组(1D):一维数组是最简单的数组形式,它只有一个轴。可以将一维数组想象成线性排列的元素序列。例如:
import numpy as np a = np.array([1, 2, 3, 4, 5]) print(a.shape) # 输出 (5,)
-
二维数组(2D):二维数组具有两个轴,通常可以看作是矩阵。它有行(row)和列(column)两个维度。例如:
import numpy as np b = np.array([[1, 2, 3], [4, 5, 6]]) print(b.shape) # 输出 (2, 3)
-
三维数组(3D):三维数组有三个轴,可以看作是多个二维数组组成的集合。例如:
import numpy as np c = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) print(c.shape) # 输出 (2, 2, 3)
除了以上的维度,NumPy还支持更高维度的数组。
在NumPy中,可以使用.ndim
属性获取数组的维度数,使用.shape
属性获取数组的形状。.shape
返回一个元组,元组中的每个元素表示相应轴上的尺寸。
可以通过改变数组的形状来改变维度,例如使用.reshape()
方法。
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6])
b = a.reshape((2, 3))
print(b)
# 输出:
# [[1 2 3]
# [4 5 6]]
print(b.shape) # 输出 (2, 3)
NumPy的多维数组在科学计算和数据处理中非常有用,它可以存储和操作多维数据,例如图片、音频、视频等。理解数组的维度有助于正确处理数据和实现相应的运算。
维度操作
当使用NumPy处理多维数组时,理解和操作数组的维度是非常重要的。下面是一些与NumPy的维度相关的重要概念,包括创建、添加、合并和观察数组的形状。
-
创建数据:要创建一个NumPy数组,可以使用
np.array()
函数。这个函数接受一个序列对象(如列表或元组)作为输入,并将其转换为NumPy数组。例如:import numpy as np data = [1, 2, 3, 4, 5] array = np.array(data) print(array) # 输出: [1 2 3 4 5]
-
array.ndim: 使用
.ndim
属性可以获取数组的维度数。它返回一个整数,表示数组的轴数(维度)。例如:import numpy as np array = np.array([[1, 2, 3], [4, 5, 6]]) print(array.ndim) # 输出: 2
-
添加数据:在处理数组时,有时需要在现有数组的末尾添加额外的数据。可以使用
np.concatenate()
函数将两个或多个数组沿着指定的轴连接起来。另外,也可以使用np.expand_dims()
函数在指定的轴上扩展数组的维度。例如:import numpy as np array1 = np.array([1, 2, 3]) array2 = np.array([4, 5, 6]) concatenated = np.concatenate((array1, array2)) print(concatenated) # 输出: [1 2 3 4 5 6] expanded = np.expand_dims(array1, axis=0) print(expanded) # 输出: [[1 2 3]]
-
合并数据:除了
np.concatenate()
函数外,NumPy还提供了一些特定的函数来合并数组。np.vstack()
函数用于垂直堆叠(按行堆叠)数组,而np.hstack()
函数用于水平堆叠(按列堆叠)数组。例如:import numpy as np array1 = np.array([[1, 2, 3], [4, 5, 6]]) array2 = np.array([[7, 8, 9], [10, 11, 12]]) stacked = np.vstack((array1, array2)) print(stacked) # 输出: # [[ 1 2 3] # [ 4 5 6] # [ 7 8 9] # [10 11 12]] concatenated = np.concatenate((array1, array2), axis=1) print(concatenated) # 输出: # [[ 1 2 3 7 8 9] # [ 4 5 6 10 11 12]]
-
观察形态:要了解数组的形状,可以使用
.size
和.shape
属性。.size
返回数组中元素的总数,.shape
返回一个元组,其中的每个元素表示相应轴上的尺寸。例如:import numpy as np array = np.array([[1, 2, 3], [4, 5, 6]]) print(array.size) # 输出: 6 print(array.shape) # 输出: (2, 3)
了解和操作NumPy数组的维度非常重要,它将帮助你正确处理数据,进行各种数组操作和数值运算。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)