Одна вещь, которую вы, безусловно, могли бы сделать, это проанализировать их все как числа с плавающей точкой, поскольку целые числа также будут анализировать как числа с плавающей точкой. Затем вы можете увидеть, если остаток от деления на 1 равен 0 (если это так, то у вас есть целое число). Тогда у вас есть логический массив, сообщающий вам, где находятся целые числа. вот так:
import numpy as np
array = np.array(['454.13', '1.243', '8'])
floats = array.astype(float)
remainders = np.remainder(floats, 1)
int_indices = remainders == 0
ints = floats[int_indices]
Я намеренно сделал это здесь «слишком много» шагов, чтобы прояснить, что я имею в виду, надеюсь, это поможет.
Вывод:
>>>ints
array([8.00000000e+00])
>>>int_indices
array([False, False, True])