ろぐれこーど

限界組み込みエンジニアの学習記録とちょっぴりポエム

python

VSCodeに慣れ切った人間が限界までサクラエディタを使ってみた話

サクラエディタ、使っていますか? 自分は新卒入社時、先輩に謎マウント1取られて以来忌み嫌っていたのですが、何事も経験せず批判するのも良くないなと思い、とりあえず限界までカスタムしたらどれくらい使い物になるのかを試してみました。ちなみに普段はV…

copytreeのignoreをinclude/excludeで指定する(python)

pythonにてディレクトリを再帰的にコピーする場合、shutil.copytreeを使用できます。このとき引数ignoreを使用すると指定したglobパターンにマッチするファイル、ディレクトリを除いてコピーができますが、指定の仕方がちょっと特殊(shutil.ignore_patterns…

tagsファイルをパースして関数一覧を取得する

プロジェクト内の関数一覧を取得したいとPLに言われたので、適当に方法を考えてみました。構文解析から愚直にやると地獄を見そうなので、今回はCtagsを利用し、tagsファイルをパースするスクリプトをpythonで書きます。 Ctags == 5.8 python >= 3 C/C++のプ…

MongoDBのcollection基本操作をpythonで(pymongo)

pymongoによるMongoDBのcollectionに対する操作をしょっちゅう忘れるのでメモします。バージョンは以下を想定しています。基本的にはMongoDBでのshellコマンドがそのままpymongoで使用できます。 MongoDB == 4.4.1 pymongo == 3.10.1 検索 基本 演算子の指定…

数値を含む文字列のリストを数値順でソート (numerical sort, python)

pythonにはリストをソートするための関数sorted()がありますが、数値を含む文字列のリストをソートすると意図しないものとなります。 l = [ "test2", "test1", "test12", "test4", "test10" ] sorted(l) # ["test1", "test10", "test12", "test2", "test4"] …

subprocessを子プロセスまでkillして停止させる (python)

pythonのsubprocessライブラリ使用時、バックグラウンド実行したサブプロセスを中断させるのに手こずったのでメモします。 結論 Windows Linux 補足説明 execコマンド subprocess 参考 結論 下記の環境で確認済み。 python == 3.7.6 バックグラウンド実行す…

Ubuntu18.04 にpipでwxPython(Phoenix)をインストール

Ubuntu18.04 + python3.7.6(pyenv) にwxPython(Phoenix)をインストールするときに少しハマったのでメモしておきます。 結論 試したこと pip apt まとめ 参考 結論 2020/5/17現在の方法です。 sudo apt install libsdl2-2.0-0 libsdl2-dev してから pip insta…

OpenCVをソースからビルドしてanacondaにインストール

pythonでOpenCVを使う場合、conda経由でインストールするのがもっとも簡単かつ一般的だと思う。 conda install -c menpo opencv=3.3.1 みたいにすれば一発で入る。 バージョン一覧が確認したければ conda search -c menpo opencv とすれば、condaからインス…

zip()を使って複数配列(array, list)をshuffleする(python)

複数のリストやnumpy arrayを、その対応関係を崩さずにシャッフルするのに手間取ったのでメモする。ここでいう対応関係とは、配列Xとyがあった時、(X[0], y[0]), (X[1], y[1])のペアのことを表す。一つの訓練サンプルに対するラベルとか、従属変数に対する説…

(pandas)Series, DataFrameの基本的な使い方を学びたかった

pythonにはpandasという非常に優れたデータ解析ツールが用意されている。昔はデータ解析といえばRがよく用いられていたらしいが、 pandasやnumpyなどの便利なツールが開発され、pythonが爆発的に普及していったらしい。 そんなわけで勉強がてらpandasの基礎…

(numpy)特定の軸に対して全て同じ値を入れる

めも。 numpyで、特定の軸に対して全て同じ値やarrayを入れたい時があった。例えば二次元の場合、 a = np.zeros((5, 5)) #array([[ 0., 0., 0., 0., 0.], # [ 0., 0., 0., 0., 0.], # [ 0., 0., 0., 0., 0.], # [ 0., 0., 0., 0., 0.], # [ 0., 0., 0., 0., …