我正在閱讀三個獨立城市的數據,我想將每組數據保存在一個二維數組中,但是當我越過我的代碼的一部分時,循環不斷寫入來自我的前兩個城市的事情,因爲我只有一個一維數組。我應該在哪裏設置這些二維數組以保持我的文件的組織,以及我應該使用哪些函數和參數來實現?Python中的二維數組
陣列應該是3X54(3爲每個城市,54每年數據的)
編輯:所有在下面的代碼初始變量(即雨,TMIN,最高溫度)將在他們超過19,000元在開始時我最終每年在代碼中進行平均。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
city = ['Lubbock.txt','Erie.txt','Oslo.txt']
years = np.arange(1960,2014,1)
months_summer = range(5,8,1)
for x in range(0,len(city),1):
data = np.genfromtxt(city[x], skip_header=2, usecols=(1), dtype=('S8'))
data2 = np.genfromtxt(city[x], skip_header=2, usecols=(2,3,4))
#ONLY GET 1-D ARRAY WHEN I ASK FOR SHAPE OF VARIABLE AFTER THIS POINT
dates = pd.DatetimeIndex(data[:])
year = dates.year
month = dates.month
day = dates.day
precip = data2[:,0]/10.
tmax = data2[:,1]/10.
tmin = data2[:,2]/10.
tmaxF = (tmax*(9./5.))+32.
tminF = (tmin*(9./5.))+32.
precipinches = precip*0.03937007874
tmax_avg = []
JJA3tmax_avg = []
JJAtmax_avg = []
DJFtmax_avg = []
for yr in years:
toavg = np.where(year == yr)
tmax_avg.append(np.average(tmax[toavg]))
for mo in months_summer:
sumtoavg = np.where(month == mo)
JJA3tmax_avg.append(np.average(tmax[sumtoavg]))
JJAtmax_avg.append(np.average(JJA3tmax_avg))
JJA3tmax_avg = []
dec_this_year = (year == yr) & (month == 12)
jan_next_year = (year == (yr+1)) & (month == 1)
feb_next_year = (year == (yr+1)) & (month == 2)
wintoavg = np.where(dec_this_year & jan_next_year & feb_next_year)
DJFtmax_avg.append(np.average(tmax[wintoavg]))
tmaxmean30 = np.average(tmax_avg[1:31])
JJAtmaxmean30 = np.average(JJAtmax_avg[1:31])
DJFtmaxmean30 = np.average(DJFtmax_avg[1:31])
#THIS IS THE DATA THAT I'M PLOTTING
tmax_avg_dep = tmax_avg - tmaxmean30
JJAtmax_avg_dep = JJAtmax_avg - JJAtmaxmean30
DJFtmax_avg_dep = DJFtmax_avg - DJFtmaxmean30
您正在導入'pandas',但您似乎並未真正使用它 - 尤其是,您似乎沒有利用'groupby'。 – DSM
@DSM你有關於如何使用groupby函數的建議嗎?我不太瞭解熊貓,只是發現了將我的數據中的8位YYYYMMDD轉換爲字符串的函數。 – DJV