タグ

ブックマーク / atsuoishimoto.hatenablog.com (2)

  • Pythonのfor文は遅い? - atsuoishimoto's diary

    bicycle1885.hatenablog.com こちらの記事を拝見していて、ちょっと気になったので注釈。 PythonやRを使っている人で、ある程度重い計算をする人達には半ば常識になっていることとして、いわゆる「for文を使ってはいけない。ベクトル化*1しろ。」という助言があります。 これは、PythonやRのようなインタープリター方式の処理系をもつ言語では、極めてfor文が遅いため、C言語やFortranで実装されたベクトル化計算を使うほうが速いという意味です。 昔からよくこういう言い方がよくされるが、当にPythonのfor文は遅いのだろうか。 聞くところによるとRのfor文はガチで遅いそうだが、Pythonの計算が遅いのはインタープリタ方式だからでも、for文が遅いからでもない。もちろん、Pythonはインタープリタなので遅いし、for文だって極めて遅い。しかし、これはPyt

    Pythonのfor文は遅い? - atsuoishimoto's diary
  • Cython 演習問題 - atsuoishimoto's diary

    演習1 - 素数判定 (A) 以下のPythonスクリプトを作成し、 primes(1000) の実行に必要な処理時間を測定せよ。 def primes(kmax): p = [0] * kmax result = [] 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 (B) (A)で作成したスクリプトを primes1.pyxという名前で保存し、Cythonで拡張モジュール primes1 を作成せよ。必要な setup.py ファイルは以下の通りである。また、primes1.primes(1000) の処理時間を測定し、Python版とのパフォー

    Cython 演習問題 - atsuoishimoto's diary
    nihohi
    nihohi 2013/12/23
    malloc, free
  • 1