Вы можете создать небольшую функцию, которая преобразует одно значение точно так, как вы хотите, например ::
def to_int(x):
try:
return int(x)
except ValueError:
return 0
, который можно использовать с map
:
In [22]: a = ['15', '12', '', 18909, '8989', '90789', '8']
map(to_int, a)
Out[23]: [15, 12, 0, 18909, 8989, 90789, 8]
в понимании списка:
In [25]: np.array([to_int(x) for x in a])
Out[25]: array([ 15, 12, 0, 18909, 8989, 90789, 8])
или в выражении генератора для непосредственного создания пустого массива:
In [27]: np.fromiter((to_int(x) for x in a), dtype=int)
Out[27]: array([ 15, 12, 0, 18909, 8989, 90789, 8])