Python错误代码

Python错误代码,python,numpy,Python,Numpy,所以我尝试平均每600行。我得到的Python错误索引超出了范围,并且数字显示不正确。帮助? import numpy as np data = np.loadtxt('Y:/Canopy/PSUone.txt', delimiter = ',', skiprows = 0) shape = np.shape(data) data_you_want = data[:,3] daily_averages = list() for i,d in enumerate(data_you_want):

所以我尝试平均每600行。我得到的Python错误索引超出了范围,并且数字显示不正确。帮助?

import numpy as np

data = np.loadtxt('Y:/Canopy/PSUone.txt', delimiter = ',', skiprows = 0)
shape = np.shape(data)
data_you_want = data[:,3]
daily_averages = list()

for i,d in enumerate(data_you_want):
    if (i % 600) == 0:
        avg_for_day = np.mean(data_you_want[i - 600:i])
        daily_averages.append(avg_for_day)

with open('Y:/Canopy/newPSUone.txt', 'w') as f:
    f.write('Wind U Direction\n')
    f.write('------------------\n')
    for i, d in enumerate(data_you_want):
         s = '{0:4.3f}\n'. format(daily_averages[i])
         f.write(s)

f.close()

我认为你遇到的问题是:

for i,d in enumerate(data_you_want):
    if (i % 600) == 0:
        avg_for_day = np.mean(data_you_want[i - 600:i])
        daily_averages.append(avg_for_day)
。。。其次是:

for i, d in enumerate(data_you_want):
     s = '{0:4.3f}\n'. format(daily_averages[i])
     f.write(s)

因为你只需要从
你想要的数据
每日平均值
的每600行取一次平均值,你将在
每日平均值
中有
len(你想要的数据)//600个元素。如果你迭代你想要的
数据
并尝试获取
每日平均值[i]
,那么你将到达
i
大于
每日平均值
长度的点,你将得到一个错误。

你的输入文件看起来如何??,更新到你的帖子
data\u you\u you\u want=data[:,3]
gives error>TypeError:列表索引必须是整数,而不是元组注释,当i为0时,i%0将为真,因此您将平均行数-600:0,这可能不是您想要的。@ForceBru。。。这种语法在Numpy中运行良好<代码>数据
不是一个列表。@VivekSable,
f
是一个文件处理程序,不是吗?