Python中用于获取形状列表的函数get_shape_list()详解
发布时间:2024-01-20 08:20:52
在Python中,可以使用get_shape_list()函数来获取形状列表。这个函数可以接收一个参数,即需要获取形状的对象。它返回一个包含形状信息的列表。
下面是一个使用例子:
import numpy as np
def get_shape_list(object):
shape_list = []
if isinstance(object, int):
# 如果对象是整数,则直接返回空列表
return shape_list
elif isinstance(object, list):
# 如果对象是列表,则递归遍历列表中的每个元素,并获取其形状信息
for item in object:
shape_list += get_shape_list(item)
else:
# 如果对象是其他类型,则使用numpy库的shape函数获取其形状信息
shape_list.append(np.shape(object))
return shape_list
# 定义一个多维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 调用get_shape_list函数,并传入多维数组作为参数
result = get_shape_list(arr)
# 打印结果
print(result)
在上面的例子中,我们首先导入了numpy库,并定义了一个多维数组arr。然后,我们调用get_shape_list函数,并将多维数组arr作为参数传入。函数返回的结果存储在result变量中,并打印出来。
在get_shape_list函数中,我们首先定义了一个空列表shape_list来存储形状信息。接下来,我们使用isinstance函数判断传入的对象的类型,通过分支语句来处理不同类型的对象。
如果传入的对象是整数,我们直接返回空列表。如果传入的对象是列表,我们使用递归的方式遍历列表中的每个元素,并调用get_shape_list函数获取其形状信息。如果传入的对象是其他类型,我们使用numpy库的shape函数来获取其形状信息,并将其添加到shape_list中。
最后,我们返回shape_list。在例子中,多维数组arr的形状为(2, 3),所以打印出来的结果为[(2, 3)]。
总结起来,get_shape_list函数可以方便地获取对象的形状信息,并返回形状列表。它可以处理整数、列表和其他类型的对象,并通过递归和numpy库的shape函数来实现。
