Cucco’s Compute Hack

コンピュータ関係の記事を書いていきます。

openpyxlで、エクセルファイルのフィルタの設定をする

openpyxlで、エクセルファイルのフィルタの設定をする実証コードエクセルで開いても、フィルタの設定は入っているが、フィルタ表示はされていない状態で表示される。 エクセルで開いて、フィルタのプルダウンを開いて、再適用すれば、フィルタリングされた状…

順位を教えてくれる関数

順位を教えてくれる関数。 データ件数に対してn^2で計算時間がかかるようなので、大きな配列への適用は難しい。自前環境での計算時間は大体以下の通り。 # 10000個で、0.2秒 # 20000個で、0.7秒 # 30000個で、1.5秒 # 40000個で、2.7秒 プログラム import nu…

Cisco スイッチコマンド備忘録

gwがスイッチの名前です。 Terminal(CUI関係) terminal length 0 --More-- が出てくるときに。0にすれば全部一括で表示される。行数を指定できる。 DHCP関連 DHCPのリリース状況確認 show ip dhcp binding 固定IPの割り当て configure ip dhcp pool pool_sam…

リストの結合と、DBへの格納

長さが同じリストを、列が増える方向に連結して、DBに格納する検証コード。 Pandasを経由したほうが、SQLでのテーブル定義 をしなくてもよいから楽 プログラム import pandas as pd import sqlite3 # 長さが同じListを、列が増える方向に連結 # Index は無し…

Visual Stuido Code & Anaconda環境構築(その2)

vscodeでanacondaを使うと出るエラーの対策。a以下のコマンドを実行すると、対処できるかも。 conda init エラーの内容 PS C:\dev> C:/Users/<ユーザー名>/Anaconda3/Scripts/activate PS C:\dev> conda activate base conda : 用語 'conda' は、コマンドレ…

移動平均(numpy.convolve利用)1次元

関連記事に乗せている2次元よりは1次元のほうが使い勝手がよさそうなので書き換え。起点からwindowsizeの範囲で合計するだけではなくて、起点側を,ignoresize個を無視して合計するような形にしている。np.convolveの2つ目の引数の割当たりかたが想像の逆なの…

DBのテーブルから列データをリストで取得する

DBのテーブルから列データをリストで取得する。fetch()で取得すると、行ごとのタプルのリストになっていて、処理しづらいので、ほしい列の値だけをリストにする関数get_one_column_data_list()を作成。 リストのメモリ確保のため、件数確認のget_countも作成…

分割してCSVに書く、分割されたCSVを読む

1年前のプログラムの一部改良。 複数ファイルを連続して読むプログラム - Cucco’s Compute Hackディレクトリのパスと、ファイル名(拡張子ナシ、連番ナシ)を与えて、 決まった行数を書いたファイルを保存する、それらのファイルを開いて読む、というプログラ…

pythonの引数ライブラリargparse

argparseのサンプルコード。-から始まる名前にしてOptional引数にして、 action="store_true"をつけておけば、フラグとして利用できそう。 プログラム import argparse if __name__ == "__main__": parser = argparse.ArgumentParser() # 必須引数(=位置引…

pythonの.formatに辞書を渡すときの書き方

pythonの.formatに辞書を渡すときの書き方。 dic={"key": "value"} "value: {key}".format(**dic)

複数の2クラス分類の一括学習

タイトルでは、わけがわからないと思うが、 1種類のデータに対して、2クラス分類問題が複数ある場合の学習。 整数dに対して、2の倍数かどうかと、3の倍数かどうか、・・・を例に学習してみた。 訓練データ形式 x : 8桁のビット整数。アンダーバー2つは、xベ…

LEFT OUTER JOINの評価

LEFT OUTER JOINの評価 一瞬で終わる。メモリも食わない。 UNIQUE属性付けておくとさらに早い。 実施内容 データのテーブルと、クラス分け結果のテーブルのJoin。 クラス分け結果は適当に%演算で作った。 ソースコード import sqlite3 from faker import Fa…

Neural Network ConsoleのCrossEntropy損失関数(ロス関数)の使い方

Neural Network Consoleの損失関数(ロス関数)の使い方の記録。 画像処理系はSquareErrorでもいいが、カテゴリ系はそんなわけにもいかないので。入力データ次第で、ある程度決まった形になるので、記録として残しておく。 CategoricalCrossEntropyを使う場合 …

sqlite3のexecutemanyの動作確認

1回で10万件を挿入するのに、0.35秒。 別実行した1件ソートの繰り返しでは0.42秒。大した差ではないが、ループを組まなくていいメリットあり。値を埋めたいところは、"INSERT INTO users VALUES(?,?,?)" のようにハテナにしておく。 リストのリストや、タプ…

sqlite3とpandasの連動確認

やっていること 0. sqliteのDB(インメモリ)の用意 1. データ準備 2. sqliteのDB(インメモリ)に書き込み 3. sqliteのDB(インメモリ)のテーブル定義を確認 4. sqliteのDB(インメモリ)のテーブルの内容を確認 ORDER BY numberでソート。 5. fillnaでNaN…

可変引数のテスト**kwargs

可変引数のテスト プログラム def func1(**kwargs): print(kwargs) # キーに一致する値の取得。キーがない場合はNoneになる。 print(kwargs.get("a")) print(kwargs.get("b")) print(kwargs.get("c")) print(kwargs.get("key1")) print(kwargs.get("key2")) …

pythonでyamlファイルの読み込み(コンフィグファイルとして)

yamlに書いた内容が、文字列や数値がその型で取得できる。辞書型と、リストにはいった辞書のyamlの書き方を追記。ソースコード import yaml import os import pprint # yamlファイルは、このhello_yaml.pyと同じディレクトリにある想定 default_yaml_filenam…

Visual Studio Code & Anaconda環境構築

最近、VSCodeでPython環境を作るとデバッグ実行がうまくいかないことがあるので、試行錯誤のメモ。 path(ユーザーの環境変数)に以下を追加 C:\Users\\Anaconda3\Scripts C:\Users\\Anaconda3\ anacondaの初期設定 「CommandNotFoundError: Your shell has …

pandasでcsv読みこみ datetime型の型指定で。

pandasでファイルの読み書きのテスト。datetimeの処理が必要なので、型指定の手順を確認。 読んでるファイル 'Book2.csv' ,time,x,y,z 0,2019-03-23 08:53:16,0.384126267,0.791150474,1 1,2019-03-23 08:53:16,0.121509436,0.161273729,3 2,2019-03-23 08:5…

移動標準偏差

移動平均同様、numpyを使って、2次元のマトリックスに対する移動標準偏差の計算。 移動平均も内部で利用。 プログラム import numpy as np def moving_sum(data_2d,axis=1,windowsize=3): answer = np.zeros((data_2d.shape)) answer[:,:] = np.nan v = np.o…

移動平均(numpy.convolve利用)

移動平均の関数のテスト。 numpy.convolveは、以下が想定とちょっと違ったので。 平均の範囲 戻ってくる大きさ 計算範囲と結果の数(データ数8、平均幅3) 想定 入力と出力が同じ大きさの配列 2次元配列を処理してほしい データがないところはNAN プログラ…

より大きな値の数や割合

こんな感じ。要素数で割れば、割合がわかる。 for文を回さなくていいので、numpy便利。 >>> import numpy as np >>> >>> a=np.array([71,77,80,80,89,83]) >>> b=np.sum(a>=80) >>> print(b) 4実際のところTrueを1として計算してくれている。 >>> c=a>=80 >>…

移動分散のサンプルプログラム

移動分散のサンプルプログラム プログラム import numpy as np a=np.array([71,77,80,80,89,83]) windowsize=3 for i in range(a.shape[0]-windowsize): print("print a[{0}:{1}]".format(i,i+windowsize)) np.std(a[i:i+windowsize]) 実行結果 print a[0:3]…

ujsonのインストールができない

解決方法 https://visualstudio.microsoft.com/downloads/から、下のほうにある、Build Tools for Visual Studio 2017 をダウンロード。 実行して、以下を選択してインストール ワークロードタブ Visual C++ Build Tools 個別のコンポーネントタブ VC++ 2017…

iPhoneのボイスメモをmp3にする

icloud driveにボイスメモを保存する。 PCでicloud driveにアクセスして、ファイルをPCに持ってくる。 iTunesで開く ファイルを選択した状態で、ファイルメニューから変換→MP3バージョン ファイルはC:\Users\\Music\iTunes\iTunes Media\Music\Unknown Artis…

matplotlibの日本語対応

plotに日本語を含めていると化けるので、日本語フォントを使えるようにする。 matplotlibのフォントディレクトリに対応フォントを入れて、fontlistを更新する。 事前準備 https://ipafont.ipa.go.jp/ から、フォントファイルをダウンロードする。 C:\Program…

sklearnでクラスタリング(その2)

プロットするプログラムhello_scatterもつけてみた。 import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans def hello_kmeans_demo(): X = np.array([[1, 2], [1, 4], [1, 0],[10, 2], [10, 4], [10, 0]]) """ array([[ …

sklearnでクラスタリング(その1)

データ形式がこうなっていれば、直接KMeansに渡せる。2次元データ6件分。 array([[ 1, 2], [ 1, 4], [ 1, 0], [10, 2], [10, 4], [10, 0]])以降、確認に使ったコード >>> import numpy as np >>> from sklearn.cluster import KMeans >>> X = np.array([[1, …

anacondaでTensorFlow環境の準備 その3

gpu環境向けにやったことのメモ。 conda install -c anaconda cudnn conda install -c anaconda cudatoolkit pip install tensorflow-gpu 確認方法。TureならOK. import tensorflow print(tensorflow.test.is_built_with_cuda())

anacondaでTensorFlow環境の準備 その2

VS Codeを使っているので、デバッグとかのための手続き。 Pythonのパスを書き換えればよいらしい。フォルダごととか、ワークスペースごととか設定がありそう。 "python.pythonPath": "C:\\Users\\Cucco\\AppData\\Local\\Continuum\\anaconda3\\envs\\tensor…