我正在尝试计算最后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')])
答案 0 :(得分: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
答案 1 :(得分: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