俺言語。

自分にしか理解できない言語で書かれた備忘録

Python

【Python】Pyinstaller specファイル

Pyinstaller Specファイルのメモ # -*- mode: python -*- block_cipher = None a = Analysis( [], # 実行する.pyファイル pathex=[''], # フォルダのパス binaries=[], # 依存するdllファイルがあれば datas=[], # 使用する画像ファイルやPDF hiddenimports=…

【Python】文字列とバイト列と16進数文字列

テキストファイルの文字化けをバイナリ(バイト列)で置換する流れ ℃はutf-8で開くとUnicodeEncodeErrorが発生。 どうやらANSI文字らしい。utf-8で無理やり扱うためにバイナリで開いて文字列を置換した時の覚え書き バイナリでテキストをread ファイルストリー…

【Python】Pyinstallerでnumpyを使ったコードをexe化する際のMKL関連エラー

numpyを使用したコードのexe化トラブル覚え書き 1."Cannot load mkl_intel_thread.dll" 使用しているnumpyのバージョンや仕様によって出てくるエラーが違うようだけど要はMKLライブラリが見つからないとのこと。 2. 非mklのnumpyでexe化 できればexe化後のフ…

【Python】例外処理のひな型

Pythonのエラー処理、毎度どうすればいいのか忘れてしまうので よく使う形の覚え書き。 import warning try: # エラーが起きそうな処理 Exception PermissionError as e: # warningを使うと標準出力に警告として出力できる. # e.argsにエラー内容が格納され…

【Python】配列から値と一致するインデックスを取り出す方法

ListとNumpyで使用感が違う。Listはインスタンスのメソッドなのに対してnumpyはnumpyクラスのメソッド。 紛らわしい。。 Listの場合 ndarrayの場合 Listの場合 list.index()を使用 a = [1, 2, 3, 4, 5] b = a.index(3) # 引数は1つのみ、listで渡せない > 2…

【Python】配列同士の AND や OR, NOT を取る方法

Boolの配列同士でAND, OR, NOTを取る方法。listとnumpyで方法が違うので覚え書き (こうゆう操作感の違いは何とかしてほしい...)配列からTrueの部分だけ抽出するときなんかに便利。 oregengo.hatenablog.com list の場合 numpy の場合 list の場合 戻り値はli…

【Python】0次元のndarrayを1次元に変換

そもそも0次元が存在しているのが意味不明なんだけど、 a = np.array(0) で作成したndarrayはshape=0のゼロ次元になってしまう。これでは例えばconcatenateでほかのndarrayと結合しようとすると b = np.zeros(10) c = np.concatenate((a, b)) ValueError: ze…

【Python】CSV, Excelなどのデータ読み込み

いろいろなモジュールがあるので一度まとめ。 numpy.genfromtxt メリット numpyのメソッドなので他のモジュールをインポートする必要なし 読み込んだデータ(戻り値)がndarrayなので使いやすい csvモジュールみたいに一行ずつの読み込みではなく一度に処理可…

【Python】Python用Matlabエンジンのインストール

PythonからMatlabで作成したmファイル等を読み出したい場合に使用。 使用しているMatlabのバージョンによって使用可能なPythonのバージョンに制約があるので要注意。Matlab2016a -> Python 3.4, 3.3, 2.7 普段はPython3.7を使用してるためvirtualenvを使用し…

【Python】Anacondaよく使うコマンドと操作

仮想環境の一覧 conda info --envs 仮想環境のactivate conda activate conda_addpackage1 ローカルにダウンロードしたcondaパッケージのインストール conda install C:\Users\*****\AppData\Local\conda\conda\pkgs\***.tar.gz2 インストールされたパッケー…

【Python】複数のndarray行列からよく使うm×n配列のndarrayを作成する(縦軸:時系列データ, 横軸:データ種類)

時系列データと時間を格納した行列があるとして それから1つの配列を作成する方法 # データ準備 Time = np.array([0, 1, 2, 3....]) a = np.array([0, 1.1, 2.5, 3....]) b = np.array([0.5068, 0.840, 0.4075, 0.8574....]) # m×nの配列作成 matrix = np.co…

【Python】多次元配列

listを使った多次元配列。自分的にもこっちのほうがわかりやすい。sonickun.hatenablog.com

【Python】別バージョンのPythonをvirtualenvを使ってインストール

自分のプログラムをexe化して別のマシンで走らせようとしたところ, そのマシンが32bitであると判明。(自分は64bit) 他にも方法がありそうだけど32bitのpythonをvirtualenvを使ってインストール。 インストール pipから可能 pip install virtualenv 仮想環…

【Python】matplotlibで作成したグラフをpdfで保存しようとしたら'Can only output finite numbers in PDf'っていうエラー

題記の通り。原因はlogグラフ上にtextで値を表示するところでx=0の位置に表示させるようになってしまっていた。(xの位置はグラフの最大値の様な位置を検出して自動的に反映させるようにしていたのだけども 検出時にエラーが出た際には最大値のインデックスを…

【Python】エクセル用ライブラリの特徴まとめ

Pythonでエクセルを扱う際,いろいろなライブラリがあって更にどれも一長一短があるので簡単にまとめ。これだけで全部賄えるが無いのが残念。 xlwt,xlrd 良い所 :もっともメジャー? ダメな所:xlwtが新規作成のみで上書きに対応していない。 →xlutilsで上…

【Pycharm】アップデート後にPythonクラッシュ多発2

遅まきながらPycharmを2017.3.2をアップデートしたところ, Runは問題ないのにdebugで Process finished with exit code -1073741819 (0xC0000005) と出て強制終了するエラーが発生。print文だけの超シンプルなスクリプトでもエラーが出てdebug出来なかった…

【Android】Pythonのnp.delete(arr, range(2))相当な書き方

Pythonでndarrayをある範囲を削除する方法 arr = np.array([1, 2, 3, 4]) np.delete(arr, range(2)) > array([3, 4]) はJavaではこんな感じで書くみたい。 // arrはArrayList arr.subList(0, 2).clear();

【Android】Pythonのnp.zeros相当な書き方

Pythonで np.zeros(10) >array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) と書ける物は以下のようにするといいみたい。 Integer [] arr = new Integer[10]; ArrayList<Integer> myList= new ArrayList<>(Arrays.asList(arr)); Collections.fill(myList, 0);//fills</integer>…

【Android】Pythonのlinspace(range)相当の書き方

Pythonで val = np.linspace(0, 1, 10) > array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]) と書ける物はfor文で作るか自分でクラスを作るしかないみたい。 List list = new ArrayList(); for (int i=0; i<10; i++){ List.add(i); }

【Python】numpy ndarrayとmatrixの特徴 覚書き

MATLABからの移行組にはとっつき辛いところが多々あるnumpyの配列,ndarrayの気付いた点まとめ。 numpyは基本、横ベクトル xx.shape -> (n, ) はベクトル, x.shape -> (n,m) は配列 array([1, 2, 3])やarange(10)で作成されるのはベクトル ベクトルは標記こ…

【Python】listやndarrayの中身をエクセルに張り付けるためにクリップボードへコピー

listやndarrayの中身をエクセルに張り付けて検証や検討をしたい場合に有効。 肝になるのが・リスト内容標記を使って数値を文字列にして末尾に改行コード\nを追加・"".join(データ)で文字を結合 import pyperclip def copy(data): temp = [str(i) + "\n" for…

【Python】listの掛け算は危険

【Python】グラフ枠(Spines)の色・太さ変更

グラフ枠(Spines)を一度描画した後に変更する方法。 グラフ枠はax.Spines{"Bottom"} ax.Spines{"Top"} ax.Spines{"Left"} ax.Spines{"Right"}に枠線のインスタンスがあり,色変更は ax.Spines{"**"}.set_color(色)太さ変更は ax.Spines{"**"}.set_linewidt…

【Python】matplotlibの手動で描画更新

matplotlibでアニメーションほど早い更新周期ではないものの,イベント(たとえばグラフをダブルクリック)でグラフを更新(変化)させたい場合など,グラフ更新の関数を実行してあげる必要がある。 最も一般的なのは canvas.draw()しかしこれがすごく遅い。 Fi…

【Python】win32clipboardが無いと言われる

新しい環境にpipでpywin32をインストールした時,過去に動いていたプログラムでImportError: DLL load failed when importing win32clipboard とエラーが発生。 (実際は日本語のエラー).dllにパスが通っていなのか、などいろいろ試したがexe版のpywin32で…

【Python】Pycharm + wx3 でエラー

PycharmのPython Console使用時に発生したエラー。おそらくbackednをpyqt4からwxに変更したことも関係あると思われる。C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2017.1\helpers\pydev\pydev_ipython\inputhookwx.py def inputhook_wx3()…

【Python】Pycharmアップデート後にPythonクラッシュ多発

Pycharmはずっと2016.3バージョンを使っていたが知らぬ間に2017.1という新バージョンに。機能もデバッグの高速化とPandasの可視化と魅力的だったため アップデートしたところ,前は普通に動いていたプログラムが立て続けに Pythonのcrashで動かず。。その時…

【Python】リスト内包表記の戻り値はリスト

知らなかった。連続で処理したものをリストでもっておきたい時に便利。 たとえば グラフウィンドウ内にgridspecを使って大量にaxesを設定する場合 row = 4 line = 4 gs = gridspec.Gridspec(row, line) ax = [fig.addsubplot(gs[num]) for num in row * line…

【Python】wxFormBuilderがwxPython3に対応できていない部分

wxFormBuilderで作ったGUIはwxPython2までしか対応していないせいか wxPython3だとエラーでうまく動かいない場合があり。変更(修正)が必要な項目のまとめ。【バージョン】 wxformbuilder:3.5.1-RC1(Unicode) wxPython-Phoenix: 3.0.3dev2749+f803d20 【要変…

【Python】Pycharm設定覚書き

・行数の表示 - ON ・メソッド間の区切り線 - ON ・スペースの可視化 - ON ・補完は大文字小文字を区別するか - None(しない) ・スペルチェック - OFF(しない) これがONだと適当な変数名にいちいちアラートが出る。 ・dict型を記述する際の配置 - Align on c…