SIZE_t введите в cython на sklearn исходный код - PullRequest
0 голосов
/ 22 марта 2020

Я попытался реализовать подмножество объекта Criterion в sklearn, основываясь на этом: https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_criterion.pyx#L54.

Однако, когда я попытался запустить код в моем блокноте jupyter, он получил сообщение об ошибке TypeError: объект типа 'NoneType' не имеет len () , и имеется некоторый указатель **^**, который указывает на мой тип параметров в функции init, как показано ниже:

cdef int init(self, const DOUBLE_t[:, ::1] y, DOUBLE_t* sample_weight,
                  double weighted_n_samples, SIZE_t* samples, 
                  SIZE_t start, SIZE_t end):

Я попытался изменить тип SIZE_t на size_t и DOUBLE_t на double , и ошибки исчезли. Но я не уверен, почему в исходном коде есть SIZE_t и DOUBLE_t, и безопасно ли просто использовать size_t и удваивать как типы в моем коде. Спасибо.

Возможно, это имеет отношение к C типам, но я не уверен.

...