Полагаю, X
и Y
не могут начинаться с 0
.[1-9]\d{0,2}
соответствует числу от 1 до 3 цифр, которое не начинается с 0
.
Так что регулярное выражение для извлечения X
и Y
должно быть:
^([1-9]\d{0,2})000([1-9]\d{0,2})000$
Затем вы можете использовать re.sub()
, чтобы удалить нули между X
и Y
.
regex = re.compile(r'^([1-9]\d{0,2})000([1-9]\d{0,2})000$');
i = 14000010000
istr = str(i)
new_i = int(regex.sub(r'\1\2', istr)
Вы можете отобразить это на вашем массиве
regex = re.compile(r'^([1-9]\d{0,2})000([1-9]\d{0,2})000$');
new_array = np.fromiter((int(regex.sub(r'\1\2', str(x)) for x in array), array.dtype)
См. Самый эффективный способ отобразить функцию на массив NumPy для различных способов отображения функции на массив Numpy.