如何获取数组的均值?
我想计算最后10个元素的平均值。首先,我是从一个文件里读取数据:
np.genfromtxt(filename,skip_header=6, names=True)
我最开始尝试使用numpy.mean这个函数,但遇到了以下错误:
TypeError: cannot perform reduce with flexible type
所以我决定自己写一个函数:
def get_mean_values( marray, nr ):
"""
"""
# Creating an empty array
tmp = np.delete( marray[-1:], 0, 0 )
for key in marray.dtype.fields:
tmp[key] = np.append( tmp[key], np.mean( marray[key][nr:] ) )
print tmp
return tmp
但是tmp数组总是空的。我该怎么计算并存储最后10个元素的平均值呢?
我的数据大概是这样的:
array([ (99.9, 9.0),
(100.0, 9.0) ....],
dtype=[('Time', '<f8'), ('HorWind', '<f8')])
2 个回答
0
我不知道这是否有帮助,但一个通用的函数,用来计算数组最后十个元素的平均值,可以这样写:
array = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
def lastten(index):
return sum(index[-10:len(index)])/10
print lastten(array) --> 15
3
平均值函数只要你说得够清楚,就能正常工作哦 :)
import numpy
x = numpy.array([(99.9, 9.0),
(100.0, 9.0)],
dtype=[('Time', '<f8'), ('HorWind', '<f8')])
print 'Time', x['Time'].mean()
print 'HorWind', x['HorWind'].mean()
输出结果:
Time 99.95
HorWind 9.0