У меня есть матрица scipy CSR, которая была построена из матрицы COO следующим образом:
coord_mat = coo_matrix((data, (row, col)), dtype=np.float64)
Он используется в качестве входных данных для библиотеки с базовой реализацией C, и я считаю, что dtype моей матрицы — double(np.float64)
. Однако я сталкиваюсь со следующей ошибкой:
ValueError: Buffer dtype mismatch, expected 'flt' but got 'double'
Я провел небольшое исследование и нашел scipy C -api, который сообщил мне, что тип данных NPY_FLOAT
преобразуется в 32-битное число с плавающей запятой в C, в то время как текущий тип данных, который у меня есть, соответствует 64-битному типу данных типа double. Я на правильном пути здесь? Если да, то как указать тип массива? Я не совсем уверен, как я могу вызвать объект NPY_FLOAT
, чтобы его бросить.
Любая помощь по этому вопросу будет глубоко оценена!