2016-01-26 3 views
0

Я хочу инициализировать многомерный массив. Моя цель заключается в следующем:Инициализировать многомерный массив

  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

Ответ на этот пост: http://stackoverflow.com/questions/6667201/how-to-define-two-dimensional-array-in-python – Derlin

+0

@ juan .. как вы создадите массив, который содержит несколько 2D массивы с различными размерами –

ответ

0

Определить список содержащий 3 разных массива:

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]])] 

Я мог бы обернуть этот список в массив:

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) 

Обратите внимание на DTYPE внешнего массива object. Другими словами, массив является формой (3) и содержит указатели на объекты в другом месте. Я мог бы заменить любой из этих массивов другими объектами python - None, список, число или словарь.

Не ходите по этому маршруту, если вам не нужен массив типа объекта. Для большинства целей список так же хорош, если не лучше. Списки - это оригинальная структура Python для хранения разнообразной коллекции объектов. Массивы предназначены для хранения фиксированного количества однородных объектов, таких как числа. Плохая практика - начать с небольшого пустого массива и попытаться его развить.

Смежные вопросы