(topdown_quad.shape [0] /100.0) * 5
и (topdown_quad.shape [1] /100.0) * 5
являются значениями с плавающей точкой.
Вы не можете использовать значения с плавающей точкой в качестве индексов в Python.
Вот что говорит вам сообщение об ошибке (как бы многословно): NumPy расширяет индексирование Python для обработки целого ряда различных типов индексов, но все они по-прежнему либо целые числа, либо кусочки целых чисел,или специальные значения.
И не ясно, что вы на самом деле хотите здесь.Если, скажем, topdown_quad.shape[0]
равно 75, то topdown_quad.shape[0] / 100 * 5
равно 3,75, хотите ли вы строку 3 или строку 4?Возможно, вы захотите усечь до 0 (или до отрицательной бесконечности, если значения могут быть отрицательными), или округлить до ближайшего, или округлить в стиле IEEE с округлением .5 вверх или вниз в зависимости от того, является ли интегральная часть четной, или что-либо ещеостальное.
Что бы вы ни хотели, вы должны написать это явно.Например, если вы хотите усечь:
if topdown_quad[int((topdown_quad.shape[0]/100.0)*5),