【pandas】 DataFrameに辞書形式で格納する
>>> pd.DataFrame({"feature1":[1,2,3],"feature2":[0.1,0.2,0.3]}) feature1 feature2 0 1 0.1 1 2 0.2 2 3 0.3
【参考】
・【pandas】 CSVの読み込み - メモ的な何か
・https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.describe.html
【pandas】 DataFrame.describe()について
DataFrame.describe()はDataFrameに格納されているそれぞれの特徴量(横軸)に対して
数値データならcount, mean, std, min, 25%, 50%, 75%, maxを計算,
カテゴリデータならcount, unique(カテゴリの種類), top(先頭), freq(最頻値)を計算してくれる便利な機能
【参考】
・https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.describe.html
【pandas】 CSVの読み込み
csvファイルをpandas.DataFrameに格納する方法
# 読み込み csv_path = "./data.csv" data = pd.read_csv(csv_path) # データの表示(Jupyter notebookなどで) # .head()メソッドを使えば,先頭から5行が表示される data.head() # 特徴量の名前をリストとして取得する(特徴量は基本的に横軸にセットされる) # インスタンス変数columnsとして取得できる col = data.columns # データフレームの特徴量の一つを抽出(ラベルなど) # 特徴量の名前"name_of_feature"に対して y = data.name_of_feature
【Linux】 gifファイルを圧縮
gifsicle -i < hoge.gif > fuga.gif
【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)