[英]Python Pandas Dataframe: How to append more than one index to a list at the same time?
[英]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.