如何初始化一个包含列表对象的Numpy数组

6
我将尝试创建一个类似于numpy数组的东西,它看起来像这样:
array([[list([]), list([])],
       [list([]), list([])],
       [list([]), list([])]], dtype=object)

这个数组的形状是(3,2)。但无论何时我做...
np.array([[list(), list()], [list(), list()], [list(), list()]])

我最终得到了。
array([], shape=(3, 2, 0), dtype=float64)

我该怎么解决这个问题?


1
也许您对如何创建一个包含列表的Numpy数组感兴趣:https://dev59.com/flsX5IYBdhLWcg3wS9_o - IronMan
2
你为什么需要这样的结构? - Paritosh Singh
很可能你不想要一个包含列表的numpy数组。 - rafaelc
np.array 试图创建多维数值(或字符串)数组,只有当所有输入列表具有一致的大小时才能实现。只有在大小不同时,它才会退回到创建对象 dtype 数组(或在某些情况下引发错误)。 - hpaulj
1个回答

9
您可以使用以下内容:
np.frompyfunc(list, 0, 1)(np.empty((3,2), dtype=object))  

我们首先将list转换成一个不带参数的ufunc,它返回一个空列表,然后将其应用于一个空的3x2对象类型数组。


1
我推荐使用frompyfunc来填充自定义类实例的数组。这是使用标准类型(如list)的好方法。 - hpaulj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接