本文将从多个方面详细阐述Python数组shape的含义、用法和相关操作。
一、shape属性介绍
在Python中,shape是用来描述数组维度的属性,它用一个元组(tuple)表示,每个元素表示对应维度的大小。
以下是一个示例:
>>> import numpy as np >>> arr = np.array([[1, 2, 3], [4, 5, 6]]) >>> print(arr.shape) (2, 3)
上述代码创建了一个2×3的二维数组,并通过shape属性获取到了维度大小为(2, 3)。
通过shape属性,我们可以轻松获取数组的维度信息,为后续操作提供便利。
二、更改数组shape
在实际应用中,我们经常需要根据需求,改变数组的维度。Python提供了多种方法来实现这一目的。
1、reshape函数
reshape函数可以用来改变数组的形状,它接受一个参数,表示新的形状。
示例如下:
>>> arr = np.array([1, 2, 3, 4, 5, 6]) >>> new_arr = arr.reshape((2, 3)) >>> print(new_arr) [[1 2 3] [4 5 6]]
上述代码将原先的一维数组改变为了一个2×3的二维数组。
需要注意的是,reshape函数并不会改变原数组,而是返回一个新的数组。
2、resize函数
resize函数与reshape函数类似,都可以改变数组的形状。
示例如下:
>>> arr = np.array([1, 2, 3, 4, 5, 6]) >>> arr.resize((2, 3)) >>> print(arr) [[1 2 3] [4 5 6]]
上述代码与reshape函数的效果一致,将原先的一维数组改变为了一个2×3的二维数组。
与reshape函数不同的是,resize函数会直接修改原数组,而不是返回一个新数组。
三、获取数组shape的信息
除了使用shape属性获取数组的维度信息外,还可以使用一些其他方法来获取更多有关shape的信息。
1、ndim属性
ndim属性用来获取数组的维度数。
示例如下:
>>> arr = np.array([[1, 2, 3], [4, 5, 6]]) >>> print(arr.ndim) 2
上述代码获取到了二维数组的维度数为2。
2、size属性
size属性用来获取数组的元素个数。
示例如下:
>>> arr = np.array([[1, 2, 3], [4, 5, 6]]) >>> print(arr.size) 6
上述代码获取到了二维数组的元素个数为6。
3、dtype属性
dtype属性用来获取数组元素的数据类型。
示例如下:
>>> arr = np.array([[1, 2, 3], [4, 5, 6]]) >>> print(arr.dtype) int32
上述代码获取到了二维数组的元素数据类型为int32。
四、常用数组shape操作
1、扁平化数组
flatten函数可以用来将多维数组变为一维数组。
示例如下:
>>> arr = np.array([[1, 2, 3], [4, 5, 6]]) >>> new_arr = arr.flatten() >>> print(new_arr) [1 2 3 4 5 6]
上述代码将二维数组扁平化为一维数组。
2、转置数组
transpose函数可以用来交换数组的行和列。
示例如下:
>>> arr = np.array([[1, 2, 3], [4, 5, 6]]) >>> new_arr = arr.transpose() >>> print(new_arr) [[1 4] [2 5] [3 6]]
上述代码将二维数组的行和列进行了交换。
3、添加维度
expand_dims函数可以用来在数组的指定位置添加新的维度。
示例如下:
>>> arr = np.array([1, 2, 3]) >>> new_arr = np.expand_dims(arr, axis=1) >>> print(new_arr) [[1] [2] [3]]
上述代码在原先一维数组的基础上,添加了一个新的维度。
总结
本文详细介绍了Python数组shape的含义、用法和相关操作。通过对shape属性、改变数组shape、获取数组shape信息以及常用数组shape操作的讲解,希望读者能够更好地理解和应用数组shape。
原创文章,作者:LTDT,如若转载,请注明出处:https://www.beidandianzhu.com/g/6124.html