初始化多维数组

时间:2016-01-26 21:18:19

标签: python arrays numpy

我想初始化一个多维数组。我的目标如下:

  1. 初始化数组:

    maps = np.array([])
    
  2. 将大量不同大小的2D矩阵添加到初始化数组

    for i in range(0,3):   
       maps = [maps some_matrix]
    
    maps = [array[3x4], array[4x4], array[6x4]]
    

1 个答案:

答案 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结构。数组设计用于保存固定数量的同类对象,例如数字。从一个小的空数组开始并尝试增长它是不好的做法。