Я пытаюсь преобразовать свой код в Cython. Я пытаюсь назначить новые значения для оси, передавая массив значений. Вот пример кода:
cdef double[:,:] array_view = array
for t in range(tau):
array_view[:,t] = np.sum(func(data_view), axis = 1)
Я получаю ошибку:
TypeError: only size-1 arrays can be converted to Python scalars
Я проверил, что возвращается np.sum(func(data_view), axis = 1)
, и это массив правильной длины и форма. array
, из которого генерируется array_view
, также имеет правильную форму. Кто-нибудь знает, что может вызвать проблемы? Поскольку я новичок в Cython, здесь может быть что-то очевидное, что я упускаю.
РЕДАКТИРОВАТЬ: Вот пример минимального кода, который выдает ту же ошибку:
import numpy as np
cimport numpy as np
cpdef error():
arr = np.zeros((10,10), dtype = np.double)
cdef double[:,:] arr_view = arr
arr_view[:,0] = np.array([1 for i in range(10)], dtype = np.double)
return arr