Never Stop Questioning

Python Tips

最終更新:

t-style

- view
メンバー限定 登録/ログイン
ここを編集
PythonやPythonのライブラリに関する忘備録。

Python標準

dir

オブジェクトのメンバを出力する。

ord/chr/unichr

文字列から数値への変換がord、数値から文字列への変換がchr、その際unicodeにしたいならunichr。

pickle

いわゆるシリアライザ。pickle.dumpsとするだけでシリアライズできる。なお、JSONなども使いやすい模様。

NoneType

typesパッケージ内にある。is NoneTypeでいわゆるNULL的データをチェックできる。

Scipy(Numpy)

疎行列


LIL:List of List

作成用。リストのリスト。ローの数が一定以上大きくなるとオブジェクト生成できつい。でも、作れてしまえば、他の行列への変換が速い。文書など無限次元な要素を扱う場合は、カラム側に特徴ベクトルを扱うようにする。

COO:Coordinate List

作成用。(row, column, value)タプルのリスト。次元数が大きくてもオブジェクト生成が速い。おそらく要素が少ないならGood。ただし、演算できない。

DOK:Dictionary of Keys

作成用。(row, column)->valueディクショナリー。次元数が大きくてもオブジェクト生成が速い。ただし、アクセスが遅く、他の行列への変換がLILに比べると圧倒的に遅い。

CSR:Compressed Sparse Row

演算用。CSR同士が速い。カラムスライスはNG。

CSC:Compressed Sparse Column

演算用。CSC同士が速い。ロースライスはNG。

BSR:Block Sparse Row

演算用。不明。

DIA:Diagnoal

演算用。不明。対角成分が密で、それ以外が疎な場合向けの模様。

numba

JITライブラリ。

numbaのubuntu(Ubuntu 14.04.2 LTS)へのインストール

llvm3.5, llvmlite, numbaをインストールする。
このときllvm3.5とnumbaはapt,pip3でさくっと入る。

問題はllvmlite。ポイントは2つ。まずzlib1g-devというライブラリが必要。次にLLVM_CONFIGの設定。
sudo apt install zlib1g-dev
export LLVM_CONFIG=/usr/bin/llvm-config-3.5
sudo -E pip3 llvmlite