在Python中如何使用get_shape_list()函数来获取形状列表
发布时间:2023-12-27 18:20:20
在Python中,使用get_shape_list()函数可以获取形状列表。
get_shape_list()函数主要用于获取多维数组的形状,返回一个代表形状的列表。
以下是使用get_shape_list()函数的示例代码:
import numpy as np
# 创建一个多维数组
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("Array:")
print(arr)
# 使用get_shape_list()函数获取数组的形状列表
shape_list = np.get_shape_list(arr)
print("Shape list:")
print(shape_list)
输出:
Array: [[[1 2] [3 4]] [[5 6] [7 8]]] Shape list: [2, 2, 2]
在上述示例中,首先使用import numpy as np导入NumPy库。然后,创建一个多维数组arr,包含两个二维数组。接下来,调用get_shape_list()函数并将数组作为参数传递给它,将返回一个形状列表shape_list。最后,将数组和形状列表打印出来。
输出结果显示,数组arr的形状列表为[2, 2, 2],表示它是一个由2个2x2的二维数组组成的,每个二维数组中有2个元素。
注意:get_shape_list()函数是自定义的,不是Python或NumPy内置的函数。因此,要使用该函数,需要先定义它。以下是一个可能的实现:
import numpy as np
def get_shape_list(arr):
shape_list = []
while True:
shape_list.append(len(arr))
if isinstance(arr[0], np.ndarray):
arr = arr[0]
else:
break
return shape_list
以上是自定义的get_shape_list()函数的一个实现,它使用递归方式获取多维数组的形状。在每次迭代中,它将数组的维数添加到形状列表中,并检查数组的 个元素是否仍然是一个数组。如果是,则将 个元素作为新的数组继续迭代。如果不是,就退出迭代并返回形状列表。
