俺言語。

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

Python

【wxPython】長いTextCtrlの中身の末尾を表示する方法

ファイルのパスなどを短いTextCtrlに表示する時など、ファイル名が表示されるように右揃え?にしたい場合。下記のようにTextCtrlのstyleで右揃えを指定しますが、TextCtrlを操作した後などに無効になっていることがある。この場合はTextCtrl内のテキストを全…

【Python】Import問題

すごくわかりづらいので自分なりにまとめ。まだ合っている自信がない。 - 明示的相対Import from . import lib .(ドット)はimportを実行しようとしているモジュールが属している同一パッケージを示す。 - 絶対Import sys.pathやPYTHONPATHに登録されているパ…

【Python】【wxPython】TextCtrlで一部だけ文字の色を変える

WxPythonのTextCtrlで文字を扱う際、全体の文字色は m_textctrl.SetForegroundColour(色) で変更できるが、このメソッドでは一部の文字列だけ色を変えることは出来ない。 一部だけ変える場合には m_text.SetStyle(最初の文字位置, 終わりの文字位置, 色) で…

【MATLAB, C++, Python】C++(.dll)でMATLABエンジンを呼び出す際の落とし穴

落とし穴1 MATLAB R2017b以前と以降とでC++からMATLABを呼び出す方法が変わった模様。 engOpen(NULL) で呼び出す方法はR2017b以前まで。 C からの MATLAB の呼び出し - MATLAB & Simulink - MathWorks 日本 同方法で MATLAB R2020を呼び出すとMATLABのウィン…

【Python】WxFormBuilder GenerateCodeのファイル名、書き出し方法覚え書き

WxFormBuilderで作ったGUIをファイルに書き出す際の設定/やり方を毎回忘れるので覚え書き。 親クラス名 Projectを選択した時のProperties内、 "name"がクラス名、"file"が書き出されるファイル名になる 個人的にはPrefixで”_”を(コードを直接編集することは…

【Python】Pyinstaller specファイル

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

【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で…