にせねこメモ

はてなダイアリーがUTF-8じゃないので移ってきました。

Python

Amazon Timestreamからboto3で一度に大量のデータを取得しようとしたが空データが返ってきた

問題の概要 AWSのAmazon Timestreamというデータベースにセンサーデータを蓄積している。このデータをローカルにダウンロードして利用したい。 Pythonとboto3ライブラリを利用して、Timestreamのデータベースからそこそこ大量のデータを取得しようとしたとこ…

Python 3のElementTreeでXMLを解析する

PythonのElementTreeを使ってXMLを解析するときに少し悩んだので、忘れないようにメモ。 もっと例を洗練させるべきだとは思うが、後回しにする。 インポートとファイルの読み込み import xml.etree.ElementTree as ET tree = ET.parse('country_data.xml') r…

自営業でも適格請求書を発行したい: 請求書簡易作成システムの構成

概要 登録番号さえ用意して追加すれば適格請求書を作成できる(と思われる)システムを、Microsoft Excel, Microsoft Word, Pythonを利用して構成した。 データ入力をExcelで行い、Pythonスクリプトで形を変換し、そのデータを元にWordで差し込み印刷を行うこ…

Pythonでの長い文字列の連結は遅い

概要 Python 3で、長い文字列を格納した文字列変数に+=で連結して文字列を保持していると遅い。 文字列のリストとして保持しておいて最後に連結すると速い。擬似コードでは # text_iterは文字列を返すiterableオブジェクト #遅い out_text = "" for text in …

Windows 10+AnacondaでGPU版TensorFlow 2.3, 2.4, 2.5のインストール

Windows 10上のAnacondaに、TensorFlowのバージョン2.3.0, 2.4.1, 2.5.0のGPUサポート付きのものを、仮想環境ごとに併用可能な状態でインストールする。 概要 TensorFlowを導入しようとしてめんどくせ~って思ったのでインストール方法をメモしておく。ディ…

Windows 10+AnacondaでGPU版TensorFlow 2.3.0がうまく入らなかった

概要 Windows 10上で、Anacondaでtensorflow-gpu 2.3.0をインストールしたが、GPUが認識されなかった。ビルドの自動選択に不具合があるらしく、インストール時にビルドを指定すると問題なく認識されるようになった。 問題 現在、Anacondaのcondaコマンドでイ…

Python3で文字列をUTF-16のコード列(整数のリスト)に変換

Unicodeの基本多言語面(BMP)外、つまりUnicodeスカラ値がU+10000以降の文字について、(UTF-16の)サロゲートペアのコードを求めたい、という需要があった。これは、Win32 APIのSendInput関数がUnicodeの値をUnsigned Shortでしか指定できないので、BMP外の文…

郵便番号を何桁読めば都道府県が判定できるのか?

はじめに 郵便番号から都道府県を取得したい。理由は、宅配便の配送料*1を計算するのに使いたかったので。 郵便番号と自治体等の住所の対応が調べられるデータを日本郵便が配布している。 郵便番号データダウンロード - 日本郵便 これを使って郵便番号→都道…

Python 3でpopcountを計算する

ある整数値が与えられたとき、それを二進数表記した時の1の個数(1になっているビットの数)を数えるのをpopcountと呼ぶらしい(population countの略)。これはハミング距離を計算するのに使え、2つの値のXORをとってpopcountを計算すればハミング距離となる。P…

Twitterのフォローが減ってることがあるので、フォローのリストをログとして記録したい

Twitterのフォローが減ってることがある。 退会や凍結によりアカウントが消えたか、あるいはブロックされたかのどちらかだろうと思うが、今まで購読していたものが購読できなくなって、それが把握できないというのは切ない。 なので、Twitterのフォローのリ…

Python+OpenCVでアニメのカット検出

はじめに 編集された映像のまとまりで一番細かい単位をカット(英語ではshot)という。カットがつなぎ合わされて一つの映像作品が作られている。 一般的にカットの切り替え時にはカメラの位置や撮影対象の位置関係が不連続になるため、画の大きな変化から目で…

Pillow, OpenCVなどでの画像の扱いの違い

Pythonには画像処理のために画像を読み書きするライブラリがあり、画像ファイルをnumpy.ndarrayの形で読み込んだりそれを表示・保存したりできるものがある。 一方で、各ライブラリによって画像の形式がまちまちであったりして、同じnumpy.ndarrayでも変換が…

WindowsでChainerCVのサンプルを動かしFaster R-CNNをトレーニングしてみる

先日のChainer Meetupにて、ChainerCVというライブラリを知った。 GitHub - chainer/chainercv: ChainerCV: a Library for Computer Vision in Deep Learning Chainerの上で動作する、コンピュータビジョンタスクのためのディープラーニングライブラリとのこ…

Chainerを触ってみる: XOR関数を訓練する

※この記事ではPython 3.5.3とChainer v1.20.0.1を使っています。調べながら書いています。間違い等あればご指摘願います。 はじめに 『ゼロから作るDeep Learning』を一通り読んで、実際にライブラリ使って機械学習してみようという段、Chainerを触ってみた…

PythonでJIS X 0208コードに対応するUnicode値を求める

あるデータセットで、文字情報がJIS X 0208のコードで与えられていたのだが、使い勝手がよくないのでUnicode値に変換しようとした。 やり方 Unicodeコンソーシアムが、JIS X 0208のコードからUnicode値へ変換する変換表を公開している。 JIS X 0208 (1990) t…

WindowsでChainerのセットアップ

ZOTAC GeForce GTX 1060を買った。ので、最近話題のchainerをセットアップしたメモ。 環境 OS: Windows 10 (64 bit) Python: Python3 (Anaconda Windows 64-bit)今までつけてたQuadro K600も刺してある。 GTX 1060のセットアップ 取り付け CDのドライバをイ…

Python 3でcp932コマンドプロンプトに非cp932文字を含む文字列をprintする

Windowsでバッチ処理用にPythonスクリプトを組んでいる。ドラッグ&ドロップで処理できるように、まず.batファイルを作成しそこからPythonスクリプトにドロップされたファイル名が渡される様にしている。ここで、厄介なのが、コマンドプロンプトのエンコーデ…

Mac OS XでpyFaceTrackerをインストール

pyFaceTrackerを使いたかった。とりあえず、OpenCVバージョン2.4系へ対応してるらしい(2.4.9での動作報告あり。バージョン3系は不明)ので、2.4.12を利用してインストールしてみる。 環境 Mac OS X Yosemite (10.10.5) Python 2.7.11 インストール手順 OpenCV…

適当に書いてフォントを作る

以前、 mashabow さんが、紙に書いた手書きの文字から手書きフォントを自動で生成する、という試みをしていた。 てきとうに書いて作ったフォント - しろもじ作業室これが2008年のことである。当時この自動生成についての動画を見て感激した覚えがある。そし…

Python 3 で Cygwin 判定

Cygwin から Windows プログラムを呼んだときなど、コマンドライン引数に Cygwin 形式のパス(/cygdrive/~)を与えてもうまく開いてくれなかったりする。 Anaconda Python を Cygwin から使ってたりするのだけど、 Cygwin から実行されてるかの判定ができたら…

Python 3.4 でSVGからPDF作成

SVG ファイルから PDF に変換するのを Python からできないかなーと思ったのでやってみた。 cairosvg というライブラリを使うと楽のようだ。内部で cairo ライブラリを呼び出す。 cairosvg は Python 3.4 以上向けのライブラリとのことである。 インストール…

Python 3 でQRコードを読み書き

QRコードを読む バーコードをPythonから読めたらいいのでは、と思ったので。使ってるバージョンが Python 3 だったので結局は力技になってしまった。Python でバーコードを読むには ZBar を使うといいらしい。 Pythonで画像ファイルからQRコードを読み込む (…

Python 3 から Potrace を使う

Python 3.5 から Potrace を使い、ラスタ画像をベクタに変換したい。 より詳細に言うと、 OpenCV 3 の Python Bindings の cv2.imread() で読み込んだ画像データ(numpy.ndarray)をSVGデータに変換したかった。 pypotrace ってのもあるけど 3.5 で使えるのか…

マーカーを利用した傾き補正

印刷した紙に書き込み、それをスキャンすると、傾き等の歪みが発生する。この傾き等を補正するのを自動化したい。 今回は、そのために傾き補正用のマーカーを紙の四隅に事前に印刷しておき、スキャン画像に含まれるマーカーを元に傾き補正を行う。 次のよう…

Windows Anaconda Python 3.5 への OpenCV 3.1 のインストール

Windows 7 上の Python 3.5 へ OpenCV 3.1.0 をインストールした。 Python 3.5 は Anaconda の64bit版により導入した。OpenCV をインストールするためには NumPy や matplotlib が必要らしく、これらは Anaconda に入っているので楽である。 OpenCV のインス…

Python の glob モジュールの使い方

Python3.4 で glob モジュールを使おうとして特殊文字のエスケープ方法が分からず躓いたのでメモ。 ある文字列で始まるファイルをリストアップしたかったので、 glob モジュールを使うことにした。glob モジュールというのは、 glob モジュールは Unix シェ…