如何将一组二维数组作为时间序列分配到每个网格中什么?数据帧?

2024-05-16 09:07:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是:
我有一些2-D数组数据,它们代表了每个网格中某种化学物质的浓度,如下所示:
http://i12.tietuku.com/4501009ea445c286.png.
我想从二维数组中提取每个网格的数据,并将每个网格保存到一个独立的数据帧中,数据帧跟随时间序列。
如何简化这个循环过程?例如:

输入数据:

K1  = np.random.rand(50,50),          
K2 = np.random.rand(50,50), 
.       
.      
.       
.      
.      
.      
.      
 Kn = np.random.rand(50,50).  

目标:

f1 = [K1[0,0],K2[0,0], K3[0,0] ..... Kn[0,0]]        
f2 = [K1[0,1],K2[0,1], K3[0,1] ..... Kn[0,1]]         
.          
.        
.         
.          
f2500 = [K1[49,49],K2[49,49], K3[49,49] ..... Kn[49,49]]

Tags: 数据http网格np代表k2k1random
1条回答
网友
1楼 · 发布于 2024-05-16 09:07:04

看起来您最好只创建一个数据帧,其中f1、f2、f3是不同的列:

In [9]:

K1 = np.random.rand(50,50)        
K2 = np.random.rand(50,50) 
K3 = np.random.rand(50,50) 
K_list = [K1, K2, K3]
In [10]:

df = pd.DataFrame(np.vstack([item.ravel() for item in K_list]).T,
                  columns=['f1','f2','f3'],
                  index=pd.date_range(start='1900-01-01', periods=2500))
print df.head()
                  f1        f2        f3
1900-01-01  0.433388  0.530670  0.603563
1900-01-02  0.420193  0.870925  0.008032
1900-01-03  0.535433  0.941497  0.407027
1900-01-04  0.754523  0.523739  0.320910
1900-01-05  0.091197  0.582181  0.834773

相关问题 更多 >