gpt4 book ai didi

python - 类型错误 : list indices must be integers, 不是 numpy.float64

转载 作者:行者123 更新时间:2023-12-01 04:32:12 25 4
gpt4 key购买 nike

我有一个 csv 文件中的两个列表,我只是想将它们相减。错误消息指示我将列表项转换为整数,但它们不是整数。我尝试将它们转换为 float 、整数等,但都不起作用。

如何找到我的列表当前包含的数据类型?列表中一般不能使用 float 项进行计算吗?我做错了什么?

打印的列表(似乎是不同的数据类型):

data_WL
>>> [' 0.4001000 ', '0.3966472 ', '0.4365047', '0.4950109', '0.5348455 ', '0.5816008 ']
res_movAvWL
>>> [0.3983736, 0.41657595000000003, 0.4657578, 0.5149282, 0.55822315]

我的代码:

from pylab import *
import csv
from scipy import stats
import numpy as np

mymin = [] # create a new array
data_WL1 = [ float(x) for x in data_WL ] # convert items to float

for i in arange(0,len(data_WL)- (0.5 * movAvWindow),1):
mymin.append=((data_WL1[i]) - (res_movAvWL[i])) # data_WL - movAvWL; detrended peak flood data
res_WLnet = mymin[:] # create a new array which has the same items as mymin

if int(res_WLnet[i]) < 0.8: # if netWL smaller than 0.8m print 0 in list res_WLnet, etc.
res_WLnet.append(0)
else:
if int(mymin[i]) < 1.10:
res_WLnet.append(1)
else:
res_WLnet.append(2)

print res_WLnet

谢谢!

最佳答案

实际上你把它倒过来了,列表可以包含你想要的任何内容。但您必须使用整数访问它们。问题出在这里:

for i in arange(0,len(data_WL)- (0.5 * movAvWindow),1):   
mymin.append=((data_WL1[i]) - (res_movAvWL[i]))

您正在使用 i 访问列表的索引,但请注意,在确定 i 应迭代的范围时,您使用了 float 。这引入了尝试访问 data_WL1[0.5] 的可能性(您实际上可能会得到不同的结果)。

根据您对该范围的具体意图,您可能需要使用 int(len(data_WL)- (0.5 * movAvWindow)) 来确保 i正在以整数的形式递增。

关于python - 类型错误 : list indices must be integers, 不是 numpy.float64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32223979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com