Articles of cython

El error de comstackción de Cython “no es un nombre de módulo válido”

Intento comstackr en Windows un archivo de Cython (.pyx), un archivo que acabo de guardar de .py. Aquí está mi proyecto dir ruta. c:\..\Project\App\Analyzer\ _init_.py Few_other_files.py consolidated_loop_C.pyx cl_setup.py Aquí está mi cl_setup.py from Cython.Build import cythonize try: from setuptools import setup from setuptools import Extension except ImportError: from distutils.core import setup from distutils.extension import Extension […]

Ejecutando pytest con cython – ¿cómo comstackr los módulos de cython en pytest?

Tengo un proyecto organizado de la siguiente manera: project ├── project │ ├── module1 │ │ ├── api.py │ │ ├── _cpython_foo.py │ │ └── _cython_foo.pyx │ └── module2 ├── setup.py └── tests └── module1 ├── test_cython_foo.py └── test_cpython_foo.py donde api.py importa extensiones citonizadas: “””api.py”””” from _cython_foo import cython_fun Mi script de configuración genera la […]

Cython memoryviews en Windows

Cuando trato de usar Cython en Windows (instalación basada en Anaconda, uso de TDM-GCC ya que necesito soporte para OpenMP), me encontré con un error al usar vistas de memoria escritas. test1.pyx def test(int x): pass test2.pyx def test(int[:] x): pass Ambos módulos se pueden comstackr con un setup.py básico (usando cythonize), pero mientras test1 […]

Operaciones matriciales eficientes en cython sin objetos python

Estoy escribiendo una función que me gustaría traducir a C tanto como sea posible usando Cython. Para hacer esto, necesitaré usar operaciones de álgebra lineal. Aquí está mi función. EDITAR: La lección que aprendí es tratar de cuidar el álgebra lineal fuera de los bucles, que en gran parte he podido hacer. De lo contrario, […]

¿Mejorando el rendimiento de Cython Lapack con definiciones de arreglos internos?

Estoy tratando de acelerar la inversión de matriz en un modelo que estoy construyendo, específicamente implementando algunas rutinas de álgebra lineal en Cython. Tengo el código funcionando, pero estoy tratando de optimizar. Actualmente mi Cython se ve así: import cython import numpy as np cimport numpy as cnp cimport scipy.linalg.cython_lapack as cython_lapack cdef int ZERO […]

Empaquete solo los archivos .so comstackdos binarios de una biblioteca de Python comstackda con Cython

Tengo un paquete llamado mypack que dentro tiene un módulo mymod.py , y el __init__.py . Por alguna razón que no está en debate, necesito empaquetar este módulo comstackdo (ni los archivos .py o .pyc están permitidos). Es decir, el __init__.py es el único archivo de origen permitido en el archivo comprimido distribuido. La estructura […]

Clase de extensión Cython: ¿Cómo expongo los métodos en la estructura C generada automáticamente?

Tengo un código C ++ existente que define algunas clases que necesito usar, pero necesito poder enviar esas clases al código Python. Específicamente, necesito crear instancias de clase en C ++, crear objetos de Python para servir como envoltorios para estos objetos de C ++, luego pasar estos objetos de Python al código de Python […]

¿Cómo uso el dtype numpy longdouble?

Estoy tratando de trabajar con el tipo de np.longdouble np.longdouble en mi código Python, y estoy tratando de usar NumPy para manipular los dobles largos que obtengo de un módulo C comstackdo con Cython. Supongamos que hago esto: import numpy as np print np.finfo(np.longdouble) Machine parameters for float128 ——————————————————————— precision= 18 resolution= 1e-18 machep= -63 […]

Cython: ¿Debo usar np.float_t en lugar de doble para las vistas de memoria escritas?

Con respecto a las vistas de memoria en cython, ¿hay alguna ventaja de escribir una vista con tipos NumPy como np.float_t lugar de simplemente double si estoy trabajando con matrices de números flotantes? Y debo escribir el cdef entonces de la misma manera, haciendo por ejemplo ctypedef np.float64_t np_float_t … @cython.profile(False) @cython.wraparound(False) @cython.boundscheck(False) cdef np_float_t […]

tipo cython / numpy de una matriz

Estoy tratando de construir una matriz de tipo python int, un entero con signo de 64 bits. cdef matrix33(): return np.zeros((3,3),dtype=int) cdef do_stuf(np.ndarray[int, ndim=2] matrix): … return some_value def start(): print do_stuf(matrix33()) Se comstack correctamente, pero cuando lo ejecuto, sigo recibiendo este error: ValueError: Buffer dtype mismatch, expected ‘int’ but got ‘long’ No puedo trabajar […]