存储NumPy行列标题
我有一个二维的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')放在数组的列上,把日期放在行上。
换句话说,我想像在电子表格里那样给行和列命名。
有没有什么numpy的方法可以做到这一点呢?
1 个回答
23
使用一个结构化数组:
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)