Сохранять заголовки строк и столбцов 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 для этого?
Ответы
Ответ 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)