Тип данных np.expand_dims(boundaries, axis=0)
, то есть тип элементов внутри массива, не тот, который ожидает функция Cython. Он ожидает, что Py_ssize_t
это тип, который зависит от вашей платформы, но он получает массив типа long
, что означает np.int64
. Чтобы получить правильный тип, я думаю вы можете сделать:
labels = _enforce_label_connectivity_cython(
np.expand_dims(boundaries, axis=0).astype(np.intp),
min_size,
max_size,
)
Если это не сработает, попробуйте .astype(np.int32)
. Опять же, точный ответ зависит от вашей ОС и Python версии, но если я правильно помню, np.intp
должен быть правильного типа, чтобы соответствовать Py_ssize_t
.