Возможно ли иметь массив трехмерных записей в 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несколько раз, но не понимаю, как настроить то, что мне нужно.