IndexError: uniquement des entiers, des tranches de (`:`), points de suspension (`...`), numpy.newaxis (`None`) et entier booléen ou les tableaux sont valables indices
Je suis en train de travailler sur l'extrait de
top[0].data[128,0:128] = (fc1[self.keep1.tolist()])[self.keep2[128].tolist()]
keep1 a les données
[
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 a les données
[
125. 800. 255. 119. 801. 804. 114. 368. 636. 308. 805. 213.
......218. 373.
]
J'ai eu un problème en disant: "IndexError: uniquement des entiers, en tranches (:
), points de suspension (...
), numpy.newaxis (None
) et entier booléen ou les tableaux sont valables indices"
J'ai essayé de soi.keep2[128].tolist().astype(int), mais il ne dit tolist() n'a pas de méthode astype(int)
comment pourrais-je le résoudre?
- Vous tentez d'index d'une liste, comme s'il s'agissait d'une
numpy
tableau. Assurez-vous de comprendre la différence.arr.tolist()
fait une liste.
Vous devez vous connecter pour publier un commentaire.
En supposant que
top[0].data
,fc1
,self.keep1
etself.keep2
sont tousnumpy
tableaux, vous faites de votre solution trop compliquée, lorsque vous allumez votre des variables dans les listes. Il suffit de fairesi les dimensions sont correctes.
Vous devriez également vous demander pourquoi
keep1
etkeep2
sont des flotteurs et pas ints pour commencer. Sont-ils le résultat d'un flotteur de calcul? Et dans ce cas, pouvez-vous être sûr qu'ils n'ont pas toute partie fractionnaire?