--Cython est un langage de programmation qui combine Python avec un système de type statique de C ou C ++.
--Yo: Compilez Python en C --Yin: interface C / C ++ et Python
--Cython n'est pas le premier moyen efficace si le profilage révèle des E / S liées / liées au réseau --Cython est valide pour les problèmes ** liés au processeur **.
Loi de Pareto --80% du temps d'exécution du programme est consacré à seulement 20% du code. ――20% est introuvable sans profilage
** Tirez parti des outils de profilage intégrés de Python **
** La différence entre Cython et Python est faible lorsque le traitement lié à la mémoire, aux E / S et au réseau est le principal ** --Mémoire liée: ajout d'éléments dans un vaste tableau, etc. --E / S lié: lecture de fichiers à partir du disque, etc.
lié au réseau: recevez des données du réseau, etc.
% load_ext cythonmagic``` comme dans 1, l'erreur suivante apparaît%load_ext cythonmagic
...\extensions\cythonmagic.py:21: UserWarning: The Cython magic has been moved to the Cython package
warnings.warn("""The Cython magic has been moved to the Cython package""")
--Quand j'ai vu le débordement de Stack, il y avait une solution
[Cython in Ipython: ERROR: Cell magic %%cython
not found - Stack Overflow][4]
you should do:
%load_ext Cython
After that, the cython magic should work as expected.
――Dans [Cython book] 1,
Appuyez deux fois de suite sur la touche [Retour] pour sortir du bloc
Cependant, je n'ai pas pu sortir. La ligne se brise indéfiniment comme ↓.
In [6]: %%cython
...: def fib(int n):
...: cdef int i
...: for i in range(n):
...: print(i)
...:
...:
...:
...:
...:
...:
...:
-Je suis sorti avec [Shift] + [Return]
In [7]: %load_ext Cython
In [8]: %%cython
...: def fib(int n):
...: cdef int i
...: for i in range(n):
...: print(i)
...: # [Shift] + [Return]
....ipython\cython_cython_magic_ed5cb5261ba45739ef3878fbe8610564.c
/* "_cython_magic_ed5cb5261ba45739ef3878fbe8610564.pyx":3
cdef int i
for i in range(n): # <<<<<<<<<<<<<<
print(n)
return n
*/
## Compilation automatique à l'importation
--Créez le fib.pyx suivant
(Bien que ce soit un fib, ce n'est pas une séquence de Fibonacci mais une séquence appropriée pour simplifier.)
#### **`fib.pyx`**
```pyx
def fib(int n):
cdef int i
for i in range(n):
print(i)
--Import pyx import vous permet d'importer fib.pyx.
In [21]: import pyximport
In [22]: pyximport.install()
Out[22]: (None, <pyximport.pyximport.PyxImporter at 0x64f2cc0>)
In [23]: import fib
In [24]: fib.fib(10)
0
1
2
3
4
5
6
7
8
9
[2]: https://ja.wikipedia.org/wiki/ Langue créole [3]:https://jp.vector.com/vj_xl_driver_library_jp.html [4]:https://stackoverflow.com/questions/36514338/cython-in-ipython-error-cell-magic-cython-not-found
Recommended Posts