存储NumPy行列标题

17 投票
1 回答
13198 浏览
提问于 2025-04-16 16:28

我有一个二维的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)

撰写回答