得到:'IndexError: index 1 is out of bounds for axis 0 with size 0'但不知道为什么



在尝试将值填充到数组时,我遇到了一个索引错误,但我不明白为什么会出现这个错误。

Hist = HistData[:pos, :]

if Hist.shape[0] != 0:
for y in range(2012, 2019):
hist_pos = 0
YearHist = np.zeros((150000, 1))
for k in range(Hist.shape[0]):
tm = time.gmtime(Hist[k, 0])
if tm.tm_year == y:
YearHist[hist_pos, 0] = Hist[k, vartype]
hist_pos+=1

YearHist = YearHist[:hist_pos]

这是有问题的代码片段。这被设置到以前运行得很好的代码中。对象";Hist";是一个Nx11 2d阵列。N是从较大的数据结构中获取的非零条目的数量。有时它可以是零,但为了设置年度数组,我忽略了这些值。

当我运行代码时,我得到:

追踪(最近一次通话(:

文件";YearlyHistoPlots.py";,第34行,在中

YearHist[hist_pos, 0] = Hist[k, vartype]

IndexError:索引1超出大小为0的轴0的界限

这让我很困惑。我明确地将YearHist定义为具有大小为150k的轴0,而每当Hist具有大小为零的轴0时,这行代码就不应该执行。我缺了什么吗?

问题出在最后一行,你不小心把它放在了for-k循环中,但它属于for-y循环。删除一个选项卡,你应该没事。

YearHist = YearHist[:hist_pos]

成为

YearHist = YearHist[:hist_pos]

相关内容

最新更新