俺言語。

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

【Python】Numpyのndarrayは1xN行列とベクトルが全くの別物!

MATLABと大きく違う点を今更ながら気づいた…。 なんかおかしいな、やりづらいなと思っていた点ですっきりしたのでメモ。 numpy.arange(0,10,1) >> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) # ←これはベクトル a = numpy.arange(0,10,1) a.reshape(1,10) >> ar…

【Python】クリップボードからデータ取得

沢山の方法があってどれを使うといいのか迷ってしまう。 いくつか試したのでその結果のメモ。1. win32clipboard(pywin32の一部と思う) # ストリームを開く win32clipboard.OpenClipboard() # データ取得 win32clipboard.GetClipboardData() # ストリームを閉…

【Python】クリップボードにウィンドウをキャプチャ

matplotlibにはMATLABの様にグラフのハードコピー機能がないため, 自作するための下調べ。下記が参考になりそう。d.hatena.ne.jp pytan.hatenablog.com

【Python】Numpyで行列の連結

良く忘れるのでメモ。こちらが大変わかりやすい!qiita.com

【Python】matplotlibのフォントを変えた際にクリアする必要のあるキャッシュ

フォントのキャッシュを消去しないと新しいフォントが使えない。 キャッシュの場所は import matplotlib matplotlib.get_cachedir() でわかる。ここにある"fontList.cache"を消去すること。フォントの変え方はこちらを参考に。 qiita.com

【Python】threadを使った時のプチはまり

threadのインスタンスを作成して別スレッドを作成する際の プチはまり # 関数hogeに引数numで与えて別スレッドで動かす例 self.th = threading.Thread(target = self.hoge, name="th", args=(num,)) self.th.start() 引数の"args=()"はタプルが必要なので 一…

【Python】プログラムでキーを自動的に押す(キーを送る)

あるアプリケーション上で自動的にキーを連打する必要が出たので 調べた時のメモ # F5を押す ctypes.windll.user32.keybd_event(116,0,0,0) # F5を放す ctypes.windll.user32.keybd_event(116,0,0,2) キーコード(バーチャルキーコード)はこちらを参考にさせ…

【Windows】Windows APIの便利なリスト

ctypesが使える様になってAPIを調べる機会が増加。 よいサイトを見つけたのでメモ。https://msdn.microsoft.com/ja-jp/windows/hh240557#10使い方は # user32.dllの場合,keybd_eventの場合 ctypes.windll.user32.keybd_event(**,0,0,0) # kernel.dllの場合 c…

【Python】py2exeで作成したプログラムで実行時にコンソールを表示させないようにする

setup.pyで windows = [ {"script" : "***.py",} ],"windows ="とすればコンソールは表示されなくなった。 "console ="とすればコンソール表示に戻る。 (exe化するpyファイルの拡張子を.pywにしても同様の効果があると どこかに書いてあったけどダメだった)

【Python】py2exeでexe化したときのエラー

py2exeを使ってexe化しようとしたときに出たエラー error: [Errno 2] No such file or directory: 'MSVCP90.dll'MSVCP90.dllをどこかのフォルダから探してきて python.exeがあるフォルダにコピーすれば動くようになった。 (たぶんPathが通っているフォルダ…

【Python】Numpyのndarrayを反転(逆順)にする

ndarrayだけじゃなくrangeでも使える方法。numpyの関数ならnumpy.fliplrを使えばいいんだけど 1次元の場合ちょっと工夫が必要で a = np.fliplr([ndarray])[0] てやらないとエラーがでる。なので逆スライスを使って a = ndarray[::-1] とした方がラク。ステッ…

【Python】Pandasデータフレームのインデックス(Row)を2重にする

qiita.com

【Python】 ドラッグアンドドロップを実装したファイル選択ダイアログ

正確にはファイル選択ダイアログではなく、FilePickerを使ってファイルを選択している。 import wx ## 本体のクラス class MyFileChooseDialog: def __init__(self, *dir): if len(dir) == 0: self.inidir = "" else: self.inidir = dir[0] def MyFileChoose…

【Python】Pythonpathの設定方法

Windowsの環境変数と同じようにPythonの実行環境用にPythonpathなるものが存在。 自作モジュールのパスをPythonpathに通しておけばimportや実行が楽になる。その設定方法1. sys.path.append("***")を使う → 一時的に登録するのみ。プログラム内で記述する分…

【MATLAB,C++,Python】C++でMATLABエンジンを呼び出す

ようやく動いたのでメモ。 目標はC++のDLLをPythonのctypesで読み込んでPythonからMATLABエンジンの使用。 (Matlabが2016以降であればPythonからコントロール可能なのでこんなめんどくさいのは不要) ポイント1.64bit環境(MATLABも)なのでプラットフォーム…

【Python】リスト内包表記を使って関数実行

引数にしたい対象がリストに入っている複数の要素だった場合, リスト内包表記を使うと1行で表記可能。たぶんfor文を使うより早いんだと思う(未検証) a = [0,1,2] #引数にするリスト [i**2 for i in a] #リスト内包表記 >>[1,4,9]関数を引数にする場合は i**…

【Python】Numpyを使ったプログラムをpy2exeでexe化する時のハマったポイント

コンソールでpython setup.py py2exeを実行すると コンソールに'libiomp5md.dllが見つからない’的なエラーが出る場合。setup.pyと同じディレクトリにNunpyフォルダにあるdllをコピーするとエラー回避可能。 しかしコピーはめんどくさいので何とかならないの…

【Python】matplotlibのbackend変更方法

matplotlibはグラフ等を出力するための 描画エンジンみたいのがたくさんある。 色々な用途や環境に対応するためらしい。画面出力用(Interactive Backendだっけ?)と画像ファイル等への出力用(Non-Interacktive Backendだっけ?) の2種類があり,Backendごとに…

【Python】SpyderでwxPythonを使ったプログラムの実行

Spyderでwxを使ったプログラムを実行すると PyNoAppError: The wx.App object must be created first!なんてエラーが。調べてみるとどうもSpyderはwxで書かれているようで 詳しくはわからないけど競合?衝突?が起こってるらしい。回避方法は実行するカーネル…

【Python】各モジュール,関数操作 逆引き表

■いろいろ 目的 モジュール,メソッド クリップボードにコピー xerox.copy() モジュールのインポート元 help(インポートしたモジュール名) フォルダの監視(作成,削除など) watchdog. フォルダ内のファイル一覧取得 glob.glob() フォルダ内のファイル一覧取得…

【Python】matファイル内のstructの読み込み方法

MATLABのmatファイルはScipy.ioのloadmatで読み込みできるが,読み込んだデータがMATLABの構造体だった場合 読み込み方法がいまいちよくわからなかったのでメモ。 import scipy.io matdata = scipy.io.loadmat("hogehoge.mat") 構造体が kozotai.aa = 1 .bb …

【Python】SpyderでIPthon Consoleが使用できなかった件

IDE選びを色々しながら開発を進めたため 簡単にはPython環境をアンインストールできず,PC内は良くわからない状態に。最後にSpyderにたどりついたものの, Ipythonコンソールが使えず、色々苦労したので覚書エラーコードは取り忘れ…。 SpyderのConsoleメニュ…

【Python】matplotlibよりサクサク動くらしいグラフ描画モジュール pyqtgraph

matplotlibはMATLABライクで操作が簡単だけど描画が遅い。リアルタイムのスペクトルアナライザみたいな物を作るときはこっちのモジュールが良さそう。但し,Qtベースで描画前にQtのインスタンスを作ったりmatplotlibに比べるとめんどくさそう。 yukara-13.ha…

【Python】ScipyをImportした時のエラー

Import Scipy とすると問題ないのに(正しくはエラーが出ないだけ) Import Scipy.ioとするとライブラリが見つからないと出るエラーの対処方法。 .io以外のモジュールでもエラーは発生した。 エラーはこんな感じ。 from ._ufuncs import * ImportError: DLL …

【Python】割算した時の小数点問題

pythonで割算をした時に起きたプチハマり。 [code language="python"] a = 1/16 >>a = 0 [/code] 小数点になるものだと勝手に期待していたのに何故かゼロ。 調べてみると小数を返すためには下記の様にしなきゃだめらしい。 [code language="python"] ① a = (…

【Python】Win32APIとctypesを使ってウィンドウを表示

WindowsのWin32apiをctypesで呼び出してウィンドウを表示する方法 [code language="python"] import cytpes ctypes.windll.user32.MessageBoxW(0, "Text", "Title", 0x00000040) [/code] 4番目の引数はメッセージボックスの形式と動作を指定 MSDNでは定数が…

【Windows関連】シンボリックリンク作成

試験データがHDDを圧迫してきたので 外付けHDDにデータを退避。 その試験データを使っていた解析プログラムを変えずに済むよう フォルダのショートカット的なシンボリックリンクを作成。

【Raspi】SambaでWindowsからアクセス(ファイル共有)

下記を参考にさせてもらったhttps://sites.google.com/site/riyo10/computer/samba 1.まずはインストール$sudo apt-get install samba 2.設定を変更$sudo vi /etc/samba/smb.conf ただしsmb.confはroot権限でも読み取り専用のため先にパーミッションを変更$c…

【Raspi】無線LAN設定

無線LANドングル ***では’lsusb’で確認するとなぜか認識したりしなかったり。Logitecの***に変えたらちゃんと認識してくれた。 ※書き太字のところを追記or修正 $sudo vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 allow-hotplug et…

【matlab】複数の出力変数を受ける方法

いまいち用途がわからないけどそのうち使えそうなのでメモ。 [code language="text"] r = rand(4, 3); [/code] r = 0.6381 0.1359 0.5193 0.8755 0.9457 0.2041 0.5850 0.5873 0.3957 0.7167 0.0371 0.1791 f = cell(1, 2);[f{:}] = max(r);f{:} ans = 0.875…