如何查找存储在嵌套列表中的 numpy 数组的长度?

How to find the length of numpy arrays stored in a nested list?

我有一个嵌套的 numpy 数组列表,想找出所有嵌套子列表的每个数组的长度。我试过 this solution 但无法解决我的问题。我这里的列表有两个嵌套列表:

import numpy as np
big_list = [[np.array([[1., 2.], [0., 0.], [4., 4.]]),
             np.array([[0., 1.], [5., 6.]])],
            [np.array([[7., 7.]]),
             np.array([[5., 0.], [1., 7.]])]]

第一个嵌套列表有两个长度为 32 的数组。第二个嵌套列表有两个长度为 12 的数组。所以,我希望最终结果是一个长度为 numpy 的数组:

np.array([[3, 2], [1, 2]])

我尝试了以下 for 循环。它以某种方式起作用,但我正在寻找一种更有效的方法。

len_rough = np.array([])
for i in range (len(big_list)):
    for j in range (len(big_list[i])):
        len_each = len (big_list[i][j])
        len_rough = np.append(len_each, len_rough)
len_rough = len_rough[::-1]

您可以使用递归函数来确定包含数组的长度。这适用于任何级别的嵌套。

def nested_len(obj, *, target_cls=np.ndarray):
    return [len(x) if isinstance(x, target_cls) else nested_len(x) for x in obj]