Python numpy数组中每行的select列的平均值

Python numpy数组中每行的select列的平均值,python,numpy,Python,Numpy,我有一个名为values的numpy数据矩阵,共有9000行49列。 我想计算每行前14列的平均值,并将其输出为具有相同行数的数组(即9000,与len(value))相同) 我的代码只正确计算第一行的平均值,从那里开始,值是不正确的。我找不到哪里出了问题,但一定有一些逻辑上的错误,我似乎找不到。。有人能找到它吗 谢谢我使用了下面的备选方案,它给出了所有正确的数字,但我仍然不明白为什么我问题中更古老的解决方案只适用于第一行 av15=[] a = int() for i in range(len

我有一个名为
values
的numpy数据矩阵,共有9000行49列。 我想计算每行前14列的平均值,并将其输出为具有相同行数的数组(即9000,与
len(value)
)相同)

我的代码只正确计算第一行的平均值,从那里开始,值是不正确的。我找不到哪里出了问题,但一定有一些逻辑上的错误,我似乎找不到。。有人能找到它吗


谢谢

我使用了下面的备选方案,它给出了所有正确的数字,但我仍然不明白为什么我问题中更古老的解决方案只适用于第一行

av15=[]
a = int()
for i in range(len(values)):
    a = values[i,0:14].mean()
    av15.append(a)

av15 = numpy.array(av15)
av15 = av15.reshape([len(values),1])    
numpy.savetxt("av15.txt",av15, delimiter = "\t")

原始函数的问题是在迭代之间没有重置累加器
a
。重用您的语法可以执行以下操作:

for i in range(len(values)):
    a = int()
    for x in range(0, 14):
        a += values[i, x]
或者,由于Python不是强类型语言,请使用更清晰的:

for i in range(len(values)):
    a = 0
    for x in range(0, 14):
        a += values[i, x]
无论哪种方式,对于您所追求的内容,正确的numpy结构都是简单而有效的一行:

av15 = np.mean(values[:, :14]).reshape(-1, 1)

谢谢杰米!请问:<代码>中的感叹号是什么意思!4?这意味着我不能键入:应该是
14
,我已经编辑了这篇文章。也许你应该修改你的问题(如果合适的话)或添加赏金,而不是以答案的形式重新问同样的问题。我发现你缺少
a+=值[I,x]的缩进
但是我冒昧地猜测它只是复制意大利面,因为我预计您粘贴的代码会由于范围(0,14)内x的空循环块
而失败:
av15 = np.mean(values[:, :14]).reshape(-1, 1)