【Linux】 動画ファイルの形式変換
.ogvファイルから.gifファイルに変換する方法
ffmpeg -i hoge.ogv fuga.gif
【Linux】 スクリーンレコーダーの導入
gtk-recordmydesktopというフリーソフトを入れた.
sudo apt-get install gtk-recordmydesktop
・http://hackerspace.kinja.com/screen-recording-in-linux-1686055808
【Python】 集合についての操作
# 集合の宣言 a = set([1,2,3]) b = set([3,4,5]) # 和集合 > a | b {1,2,3,4,5} # 積集合 > a & b {3} # 集合の差(A-B = A-(A∩B) > a - b {1,2} # 対象差(AもしくはBにのみ含まれる A+B-(A∩B) > a ^ b {1,2,4,5} # 部分集合の判定 > a <= b False >{3,4} <= b True
【注意】
部分集合の判定で{3} in {3,4,5}とやってもFalseとなる.
だがだからだ.
リスト型では + は連結として定義されている. -,^,&は定義されていない.<=は定義されている.
【python】集合型について
集合型set()について
# 集合の宣言(1) a = set([1,2,3]) # 集合の宣言(2) a = {1,2,3}
# 空集合の宣言 > a = set() # 追加 > a.add(1) # 削除 > a.remove(1) # 無い要素を削除するとエラー > a.remove(2) Traceback (most recent call last): File "<sttdin>", line 1, in <module> KeyError: 2 # discardによるエラーを発生させない削除 > a.discard(100)
つまり集合から要素を削除する際にremove()メソッドを使うと例外処理をする必要がある.
discard()メソッドを使うとエラー処理せずに済む.
# 集合から偶数を除く操作 a = set([1,6,7]) for i in range(0,10,2): try: a.remove(i) except: pass b = set([1,6,7]) for i in range(0,10,2): b.discard(i)
【ギャラリー】k-meansクラスタリングにおける画像減色を3Dグラフに表す
k = 1
k = 2
k = 3
k = 4
k = 5
k = 6
k = 7
k = 8
k = 9
k = 10
k =20
k = 30
k = 50
k = 70
k = 100
k = 200
k = 300
【python】 ゼロパディングする
文字列をゼロパディングする方法を調べた.
文字列メソッドのzfill(桁数)を用いればよい.
>>> num_str = "30" >>> num_str.zfill(4) 0030
【参考】
・http://www.lifewithpython.com/2015/10/python-zero-padding.html
【python】 proxy下でデータセットをダウンロードする
以下の設定を書く.
import urllib.request # proxy の設定 proxy_support = urllib.request.ProxyHandler({'http' : 'http://***.***.***:port', 'https': 'https://***.***.***:port'}) opener = urllib.request.build_opener(proxy_support) urllib.request.install_opener(opener)
これを事前に書けば
# CIFAR-10データセットをロード from keras.datasets import cifar10 (X_train, y_train), (X_test, y_test) = cifar10.load_data() print(X_train.shape, y_train.shape) print(X_test.shape, y_test.shape)
でエラーを起こさない.
【python】 日本語CSVの読み込み時のエンコーディング
encoding = "utf-8"と指定する必要がある
with open(filename, "r", encoding = "utf-8") as f: reader = csv.reader(f) header = next(reader) for row in reader: print(row)
【pandas】 DataFrameから特定の列の取り出し方
取り出したい項目["color", "size", price"]を指定して
X = df[["color", "size", "price"]]
のようにして取り出す.
一列の場合なら
df.color
df["color"]
によって"color"の列が取り出せる.
行を取り出すには
#先頭から3行目まで df[:3]
のようにリストのように扱う.
その他にも条件を指定して抽出したり, 位置を指定して抽出する方法があるらしい.
【参考】
http://pythondatascience.plavox.info/pandas/%E8%A1%8C%E3%83%BB%E5%88%97%E3%81%AE%E6%8A%BD%E5%87%BA
【python】 辞書のキーと値を逆にする操作
辞書型のキーと値の順番を変更した辞書をつくる.
順序特徴量でL, M, Sという文字列の値がある場合, 数値として扱うために
class_mapping = {"L":3, "M":2, "S":1}
のような辞書を定義し, 文字列を数値にする.
これを再び元の形に戻したい場合はinv_class_mapping = {v:k for k,v in class_mapping.items()}
のようにキーと値の順番を入れ替えて同じ操作をすればよい.
class_mapping = {"L":3, "M":2, "S":1} df["size"] = df["size"].map(class_mapping) inv_class_mapping = {v:k for k,v in dictionary.items()} df["size"] = df["size"].map(inv_class_mapping)
【pandas】 pandas.dataframeのCSVの入力と出力
pandasのdataframeとCSVファイルのやりとりメモ
import pandas as pd # CSV -> dataframe df = pd.read_csv(input_csv_path) # dataframe -> CSV df.to_csv(output_csv_path)
【numpy】配列の結合np.hstack(tup)メモ
np.hsatck()では縦方向(axis=1)の結合ができる.
行列a, bに対してaxis=1のみが違うならば, aとbは結合できる.
すなわちa.shape[1]とb.shape[1]のみが異なり, a.shapeとb.shapeの他の要素が同じならば結合可能となる.
その他の結合方法としてcolumn_stack()による横方向の結合, dstak()による深さ方向の結合, vstack(),row_stack()による縦方向の結合などがあるらしい.
またnp.meshgrid()で格子点の制作に使ったnp.c_()も結合の関数である.
この場合はaとbのサイズが同じでなければならない.
> a = np.arange(8).reshape((2,4)) > b = np.arange(100,900,100).reshape(2,4) > print(a) [[0 1 2 3] [4 5 6 7]] > print(b) [[100 200 300 400] [500 600 700 800]] > print(np.r_[a, b]) [[ 0 1 2 3] [ 4 5 6 7] [100 200 300 400] [500 600 700 800]] > print(np.c_[a, b]) [[ 0 1 2 3 100 200 300 400] [ 4 5 6 7 500 600 700 800]]
結合があれば分解もあって,np.split()というものがあるらしいが, 今回はまだ勉強しない_(:3」∠)_
【参考】
・http://python-remrin.hatenadiary.jp/entry/concatenate
・https://deepage.net/features/numpy-stack.html