【发布时间】:2014-02-12 19:13:14
【问题描述】:
第一次来,希望我做对了。
我有一组 1960-2013 年的每日温度,我使用 np.genfromtxt 从 .txt 文件中读取。我想获取数据的年度平均值(即 1960 年的平均值,1961 年的平均值...... 2012 年的平均值,2013 年的平均值)并且不知道如何只取我需要的数组子集的平均值。我的年份也与我的温度数据大小相同。
关于如何进行此操作的任何最佳实践?
这是我目前所拥有的。它只是读取了我所有的数据。
import numpy as np
import pandas as pd
city = ['Lubbock.txt','Erie.txt']
for x in range(0,len(city),1):
data = np.genfromtxt(city[x], usecols=(6), dtype=('S8'))
data2 = np.genfromtxt(city[x], usecols=(7,8,9))
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.
【问题讨论】:
-
你能告诉我们你到目前为止的代码吗?
-
你可以在python中使用
array[start:end]获取数组的一部分 -
刚刚更新它以向您展示我到目前为止所拥有的。
-
按照 Ewan 的说法,pandas 有一个 DataFrame,您可以从中执行 groupby 来聚合数据,在本例中为年份,然后应用平均聚合 (pandas.pydata.org/pandas-docs/dev/groupby.html#aggregation)。或者没有熊猫,您可以获得一组独特的年份来循环并使用 numpy.mean(numpy.where(data2[:,
] == ))。
标签: python arrays numpy average