簡體   English   中英

如何在python中附加多個時間序列相關性列表?

[英]how to append more than one list of time series correlation in python?

我想在兩個時間序列之間建立關聯。 我使用np.correcoef獲取相關性作為列表。 現在我介紹了滯后假設3,如何為3個不同的滯后保存3個不同的列表。

我試過了

 for k in range(0,4,1):
      corr_k= [] 
      corr_k.append( np.corrcoef ( T[(365-k):(730-k)] ,T[365:730]) )

我希望我的結果分別為corr_0,corr_1 ... ...但是我只得到了corr_k。 在此步驟之后,我需要為每個k值制作鄰接矩陣。 我正在使用netCDF文件作為m數據,T是溫度。 任何想法如何做到這一點? 謝謝。

用最少的示例進行編輯

import numpy as np
T = np.random.rand(100) #defines a dummy T with size 100
corr = {}
for k in range(4):
   corr[k] = np.corrcoef(T[50-k:100-k],T[50:100])

返回包含數組的字典corr 例如 :

corr[0]
> array([[1., 1.],
       [1., 1.]])

如果這不適用於您的情況,則問題可能出在corrcoef ,而不是“附加”部分!


用DICT編輯

當您在循環中要求corr_k時,python無法知道您希望k為數字。 因此,它認為您的變量名是corr_k而不是corr_0 ,依此類推。 這是充滿希望的,想一想噩夢,如果python自己更改了所有k字符! 因此,要指定隨循環索引而變化的變量名,請使用字典(如本答案所示 )並將列表存儲在其中:

corr = {}
 for k in range(4):
      corr[k] = np.corrcoef ( T[(365-k):(730-k)] ,T[365:730] ) 

然后,您將獲得以下輸出: corr[0]corr[1]corr[2]corr[3]


由於這里沒有T ,因此很難測試您的代碼,但是作為第一步,我發現對於每個步驟,您都在定義corr_k=[] ,因此覆蓋了列表而不是附加列表。 嘗試:

corr_k= [] 
for k in range(4):
      corr_k.append( np.corrcoef ( T[(365-k):(730-k)] ,T[365:730]) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM