タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Pythonとperformanceに関するrikubaのブックマーク (3)

  • numbaでざっくりPython高速化 - Qiita

    numbaというライブラリを使うと、Pythonのコードを比較的簡単に高速化できます。 うまくいけば、from numba import jitを書いて、高速化したい関数の前の行に@jitを書くだけで高速化できます。 仕組みとしては、numbaはPythonの仮想マシンコードを取得し、LLVM IRにコンパイルし、LLVMを使ってネイティブコードにするようです。 初回実行時は、コンパイル処理が走るので、若干遅くなりますが、重い処理だと、コンパイル時間を考えてもnumbaの方が速いこともあります。 利点と欠点 先に述べておきます。 利点 場合によっては、コード自体は改造せずに手軽に高速化できる コードの改造があったとしても、軽微な改造で済むことも多い 別ファイルに分けてビルドする、みたいな手間なことが必要なく、手軽に.pyファイルの中で使える 欠点 すべてのPython機能がサポートされてい

    numbaでざっくりPython高速化 - Qiita
  • Python 3.10の新機能(その10) Dataclassでslotsが利用可能に - python.jp

    dataclass は、Pythonで主にデータを格納するためのクラスで、C言語などでは構造体に相当するようなデータ構造を、かんたんに定義できるようになっています。 たとえば、次の Person は、名前と年齢を格納するdataclassです。 from dataclasses import dataclass @dataclass class Person: name: str age: int person1 = Person(name="パーソン太郎", age=20) person2 = Person(name="パーソン次郎", age=30) Python 3.10では、dataclass に slots 引数が追加され、スロット を使ったクラスを定義できるようになりました(bpo-42269)。 スロットとは?¶通常、クラスのインスタンスは、メンバー変数の名前と値を __di

  • pandas.DataFrame のforループをゆるふわ△改良して300倍高速化する - くないらぼ

    主張:高速化は最後のおたのしみにしましょう。 無駄にいじいじして高速化させて満足し、結局その後はほとんど使わなかったなあ、、、が私の日常です。 えらい人も言っていますが、高速化なんてホント最後でいいんです・・・。 今まで何十回後悔したことか。。。(これからもまたやりますが。) pythonであれば numba,cython,swig など、コンパイルしちゃう系の力(パワー)を借りることで、 全く同じアルゴリズムでもざっくり100倍単位で簡単に高速化できます。 しかし、このやり方ではpythonのインタープリターなゆるふわ△言語の良さを(該当コード部分において)捨ててしまいます。結局C/C++に魂を売っているだけです。 私は魂を売ることそれ自体が好きなので良いですが、この行為はpythonの持つ別の面での高速性、つまり "生産性の高さ" を犠牲にしています。 コードの実行スピードが速くなって

    pandas.DataFrame のforループをゆるふわ△改良して300倍高速化する - くないらぼ
  • 1