Я пытаюсь минимизировать зависимость Python в цикле while для больших рядов данных (> 200MM значений).
Сравнение или установка массива 1D NumPy в Cython можно полностью выполнить с C, но то же самое с 2D-массивом NumPy превращается в дорогой Python.
Кто-нибудь знает, как этого избежать?
Пример минимального кода:
#!python
#cython: boundscheck=False
#cython: wraparound=False
#cython: cdivision=True
import numpy as np
cimport numpy as np
def sometest():
cdef np.ndarray[np.float64_t, ndim=1] arr1d = np.zeros((10))
cdef np.ndarray[np.float64_t, ndim=2] arr2d = np.zeros((10))
if arr1d[0] > 1:
arr1d[0] = 1
if arr2d[0][0] > 1:
arr2d[0][0] = 1
Аннотация Cython:
Расширенная аннотация Cython:
Заранее спасибо за любые идеи.