我想初始化一个多维数组。我的目标如下:
初始化数组:
maps = np.array([])
将大量不同大小的2D矩阵添加到初始化数组
for i in range(0,3):
maps = [maps some_matrix]
maps = [array[3x4], array[4x4], array[6x4]]
答案 0 :(得分:0)
定义包含3个不同数组的列表:
/app
我可以将该列表包装在数组中:
In [241]: ll = [np.ones((3,4),int), np.zeros((2,4),bool), np.arange(6).reshape(2,3)]
In [242]: ll
Out[242]:
[array([[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]),
array([[False, False, False, False],
[False, False, False, False]], dtype=bool),
array([[0, 1, 2],
[3, 4, 5]])]
注意外部数组的dtype是 In [243]: np.array(ll)
Out[243]:
array([array([[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]]),
array([[False, False, False, False],
[False, False, False, False]], dtype=bool),
array([[0, 1, 2],
[3, 4, 5]])], dtype=object)
。换句话说,数组是shape(3,),并包含指向其他地方的对象的指针。我可以用其他python对象替换任何这些数组 - 无,列表,数字或字典。
除非你真的需要一个对象类型数组,否则不要走这条路。对于大多数目的而言,即使不是更好,列表也同样好。列表是用于保存不同对象集合的原始Python结构。数组设计用于保存固定数量的同类对象,例如数字。从一个小的空数组开始并尝试增长它是不好的做法。