Python

bashのプロンプトに前回実行コマンドの終了ステータスコードを表示する

zsh の walters 等のプロンプトテーマは「前回実行したコマンドの成否 (exit status / return code) に応じて表示を変える」ようになっている。これは非常に良いなと思ったため bash で同じコトができないか調べてみた。

Pythonで組み込み関数と同名の変数を使うべきでない理由

Python では input() や len() など、様々な組み込み関数を用意している。そして、これらと同じ名前で変数や関数を後から定義すると、それらを「上書き」できる。つまり、例えば input という名前の変数にファイルから読み出したデータを格納するようなコー…

Flask (Werkzeug)のResponseのmimetypeとcontent_typeの違い

Flask で HTML ではないデータを返送する場合、通常は HTML 応答に Content-Type ヘッダーを設定することになる。そのためには Response オブジェクトの mimetype プロパティや content_type プロパティに値を設定すれば良いのだけれど、これまでどちらに値…

Flaskアプリからデータをストリーミング方式で返送する

(2019-08-14: 全面的に書き換えました) Flask アプリで動的に生成したデータ(例:RDB のクエリー結果を CSV にして返す)をダウンロードさせるような機能を実現する場合、これまでデータを一度 view 関数で完成させた後に返送するしかないと思っていた。…

Windows で Python の csv モジュールで改行コードを正しく出力する

Python 標準の csv パッケージ は CSV ファイルを手軽に入出力できるので重宝しているのだけれど、Windows で使うと改行コードがおかしくなることがあった。見た目的には「各行が 2 回改行されてしまう」ような状態。これを回避する簡単な方法がやっと分かっ…

matplotlibで描いたグラフをファイル保存しつつJupyterでは表示させない方法

Jupyter Notebookで時間のかかる機械学習やデータ解析の処理を走らせているとき、その経過状況をグラフにプロットして観察したい、ということがある。そういうとき、エポックごとに 1 からグラフ描画処理を普通に走らせると Notebook 上にグラフが「追記」さ…

tesseract + pyocr使い方メモ

ひょんな理由で tesseract の使い方を知る必要に迫られたので、簡単に調査。取り急ぎ、次の情報が得られることが目標。 認識された文字(≠単語)のテキストデータ (UTF-8) それらの位置情報(左上点の座標と幅と高さ) もちろん、プログラム的にこれらの情報…

map()やリスト内包表記をジェネレーターで機能拡張(?)する

(主に Python を対象に書いたけれど、Julia その他 map 関数とジェネレーターがある処理系すべてで通用する話) あるリストを元に、新しいリストを生成したいとする。ここで、もし結果のリストが元のリストの各要素に一対一対応するのであれば、普通に map(…

Jupyter Notebookは複数カーソル編集に対応している

偶然気が付いたのだけれどJupyter Notebookは複数カーソル編集に対応しており、Ctrl+クリックでカーソルを追加、Alt+マウスドラッグで矩形選択ができる。これまで、複数カーソルを使った編集をしたい時にはイチイチVisual Studio Codeにコピペして編集して戻…

Windows+Python 3.6+OpenCV環境構築(2018年)

2018年12月20日現在、Windows上で構築したAnacondaまたはMinicondaなPython環境でOpenCVを使うには、以下の方法があるようだ。 pipコマンドでopencv-pythonをインストール pip install opencv-python condaコマンドで、conda-forgeからopencvをインストール …

Python, Cython, Numba, TensorFlowの処理速度比較

Python, Cython, Numba, TensorFlowで、処理速度を比較してみた。未完成感あるけれど、いったん今日時点での結果を記録しておく。 github.com 原点を中心とした半径 1 の円の、x, y ともに正である領域(四分の一円)を考えると、その面積は ということで円…

Pythonのwith文で実行時間を測るクラスを書いた

Pythonのwithブロックの実行時間を測るユーティリティクラスStopwatchを書いた。

Anacondaの仮想環境が作られる標準のディレクトリを変更する

Anaconda の conda コマンドでは、いわゆる仮想環境を作成することで任意のバージョンの Python やパッケージの組み合わせを一つの計算機で共存させることができる。今日は、その仮想環境のファイル群を配置する標準のディレクトリを変更する方法について書…