首页 > 编程知识 正文

Python数组shape用法介绍

时间:2023-11-19 13:24:03 阅读:304817 作者:TIGF

本文将从多个方面详细阐述Python数组shape的含义、用法和相关操作。

一、shape属性介绍

在Python中,shape是用来描述数组维度的属性,它用一个元组(tuple)表示,每个元素表示对应维度的大小。

以下是一个示例:

>>> import numpy as np
>>> arr = np.array([[1, 2, 3], [4, 5, 6]])
>>> print(arr.shape)
(2, 3)

上述代码创建了一个2x3的二维数组,并通过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]]

上述代码将原先的一维数组改变为了一个2x3的二维数组。

需要注意的是,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函数的效果一致,将原先的一维数组改变为了一个2x3的二维数组。

与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。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。