なんとなく、Cythonを読んでいたのですがいいですね。
Cythonを使ったからといって全てのコードが大幅に早くなる訳ではない。バレートの法則に従い、ボトルネックに使うのが良いそうです。
NumpyなどのライブラリではCythonでCを持ち込むことでハイパフォーマンスを確保しています。
Google Colaboratoryを使って試してみます。
Google Coraboratoryは、python3.6(2019/7/28時点)ですので、特にpip install cythonでインストールのも必要ありません。
%load_ext Cython
を宣言し、
%%cython def primes(int kmax): cdef int n, k, i cdef int p[1000] result = [] if kmax > 1000: kmax = 1000 k = 0 n = 2 while k < kmax: i = 0 while i < k and n % p[i] != 0: i = i + 1 if i == k: p[k] = n k = k + 1 result.append(n) n = n + 1 return result
cythonで宣言した関数を
primes(10)
と呼び出せばOKです。
Cythonのcdefなどを用いる時には、セルごとに
%%cython
と指定するのがポイントですかね。