Просмотр памяти массива numpy не может обрабатывать присвоение всей оси - PullRequest
1 голос
/ 14 апреля 2020

Я пытаюсь преобразовать свой код в 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 
...