Подтвердить что ты не робот

Сохранять заголовки строк и столбцов NumPy

У меня есть numpy 2-мерный массив numpy, который содержит ежедневные цены акций для нескольких акций. Например

daily_prices = np.array([  
    [4,3,3,1],  
    [5,4,3,6],  
    [6,3,2,7],  
    [3,9,7,4],  
    [8,4,6,3],  
    [8,3,3,9]])  

где каждая строка отличается от другой, а каждый столбец - другой.

Я хотел бы иметь возможность хранить в массиве (или что-то более подходящее), имена проходящих акций (например, "MSFT", "CSCO", "GOOG", "F" ) и даты вниз.

Другими словами, я хочу назвать строки и столбцы, как в электронной таблице.

Есть ли способ NumPythonic для этого?

4b9b3361

Ответ 1

Используйте структурированный массив:

import numpy as np

daily_prices = np.array(
    [
        (4,3,3,1),
        (5,4,3,6),
        (6,3,2,7),
        (3,9,7,4),
        (8,4,6,3),
        (8,3,3,9)],
    dtype=[('MSFT','float'),('CSCO','float'),('GOOG','float'),('F','float') ]
    )

Это позволяет вам обращаться к столбцам следующим образом:

print(daily_prices['MSFT'])
# [ 4.  5.  6.  3.  8.  8.]

и строки, подобные этому:

print(daily_prices[2])
# (6.0, 3.0, 2.0, 7.0)