В частности:
- Как предоставить
numpy.ndarray
как тип выходных данных функции и
- Как использовать
cimport numpy
вместо import numpy
для создания массива без издержек Python?
Код ниже работает, если numpy.ndarray
удален из строки cdef numpy.ndarray array(int start, int end):
. Согласно аннотации, в нем все еще много накладных расходов на Python (исключая инициализацию range(start, end)
вектора C ++).
%%cython -a
# distutils: language = c++
import numpy
from libcpp.vector cimport vector
cdef numpy.ndarray array(int start, int end):
cdef vector[int] vect = range(start, end)
return numpy.array(vect)
print(array(1,15))