3D-массив записей numpy

Возможно ли иметь массив трехмерных записей в numpy? (Может быть, это невозможно, или просто есть более простой способ сделать что-то — я открыт для других вариантов).

Предположим, мне нужен массив, содержащий данные для 3 переменных (скажем, температура, осадки, влажность), и данные каждой переменной на самом деле представляют собой двумерный массив данных за 2 года (строки) и 6 месяцев (столбцы). мог бы создать это так:

>>> import numpy as np

>>> d = np.array(np.arange(3*2*6).reshape(3,2,6))
>>> d

#
# comments added for explanation...
#        jan   feb   mar   apr   may   Jun    

array([[[ 0,    1,    2,    3,    4,    5],   # yr1  temp
        [ 6,    7,    8,    9,   10,   11]],  # yr2  temp

       [[12,   13,   14,   15,   16,   17],   # yr1  precip
        [18,   19,   20,   21,   22,   23]],  # yr2  precip

       [[24,   25,   26,   27,   28,   29],   # yr1  humidity
        [30,   31,   32,   33,   34,   35]]]) # yr2  humidity

Я хотел бы иметь возможность ввести:

>>> d['temp']

и получить это (первая «страница» данных):

>>> array([[ 0,  1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10, 11]])

или:

>>> d['Jan']   # assume months are Jan-June

и получить это

>>> array([[0,6],
          [12,18],
          [24,30]])

Я прошел через это: http://www.scipy.org/RecordArraysнесколько раз, но не понимаю, как настроить то, что мне нужно.

9
задан tbc 27 June 2012 в 20:04
поделиться