我正在处理代码段
top[0].data[128,0:128] = (fc1[self.keep1.tolist()])[self.keep2[128].tolist()]
keep1有数据
[
0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, ...... 114.0, 115.0, 116.0, 117.0, 118.0, 119.0
]
keep2有数据
[
125. 800. 255. 119. 801. 804. 114. 368. 636. 308. 805. 213.
......218. 373.
]
我遇到了一个问题" IndexError:只有整数,切片(:
),省略号(...
),numpy.newaxis(None
)和整数或布尔数组是有效的指数"
我尝试过self.keep2 [128] .tolist()。astype(int),但确实说tolist()没有方法astype(int)
我该怎么解决?
答案 0 :(得分:1)
假设您将变量变为top[0].data
,fc1
,self.keep1
和self.keep2
都是numpy
数组,那么您的解决方案太复杂了名单。
top[0].data[128,0:128] = (fc1[self.keep1.astype(int)])[self.keep2[128].astype(int)]
如果尺寸正确。
您还应该问自己为什么keep1
和keep2
是浮点数,而不是一开始的整数。它们是一些浮动计算的结果吗?在这种情况下,你能确定他们没有任何小数部分吗?