ここを編集
PythonやPythonのライブラリに関する忘備録。
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でさくっと入る。
このとき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
sudo apt install zlib1g-dev
export LLVM_CONFIG=/usr/bin/llvm-config-3.5
sudo -E pip3 llvmlite