みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Python

RustとPythonの連携

PythonからRustを呼び出すために,PyO3を使用します. 環境 RustでPython用のClassを作成 Cargo.toml lib.rs Pythonのlistを扱う lib.rs tuple を含む list を扱う lib.rs exceptionを使う lib.rs 環境 Windows 10 Pro 64bit CPU : Core i3-7100U CPU @ 2.40…

RustとPythonのベンチマーク比較

計算速度が重要なソフトウェア開発のために,Rustを勉強しています.Pythonと比較し速度を体感するために,簡単にベンチマークしてみました. 環境 CPU 3.2GHz Core i5 Memory 24GBytes macOS Mojave rustc 1.42.0-nightly Python 3.7.4 64bit 素数判定 Carg…

コピーするときの動作

変数aに文字列「これはテストです.」があり,これを変数bにコピーする,という動作には3つの選択肢があります. aとbが同じオブジェクトを参照する そんなややこしいことはするなとエラーにする オブジェクトを複製する aとbが同じオブジェクトを参照する …

GitLab private repositoryにある自作Pythonパッケージをpipでインストールする

自分で作成したPythonパッケージをGitLab上のプロジェクトで管理していて,これを別のプロジェクトで使用する方法を紹介します. 環境 MacOS 10.14.6 Python 3.8 GitLab 前提条件 trieという名前のプロジェクトが,private repositoryとしてGitLabに存在する…

ネストされた括弧と正規表現

ネストされた括弧を扱おうと正規表現を調べましたが,Pythonの標準のreには,(?R)など再帰が扱えないことが分かり,代わりにregexを使えばよさそう*1ということは分かりましたが,わざわざ正規表現を使わなくてもよいのではと思い,シンプルに書いてみました…

サーバーとクライアントで使用する言語の選択

この記事は,みーの個人的な意見であり,各言語には一長一短あることをご理解頂いた上でお読みください. みーが今まで扱った言語は,Java, Python, C, JavaScript, ActionScript, HSP, UnityScriptなどがありますが.現在はPythonとJavaScriptを多用してい…

疫学研究の統計に関するunittest

最近,疫学研究の勉強をしています.疫学研究はR言語で解説されていることが多い印象ですが,Python好きのみーとしては,Pythonで統計処理したいので,Pythonで疫学研究を行うことにしました. 代表的な統計計算をPythonで行えるかをUnittestにしました.問…

josler-sync

josler-syncは,日本内科学会が運営している研修システムであるJ-OSLERの入力を,退院サマリーのデータをもとに自動で行うソフトウェアです. 患者IDや性別,年齢などの事務的なデータをJ-OSLERに手入力するのが非常に面倒なので作成しました.内科専門研修…

Unicode normalizeのメモ

Unicode 正規化形式を示す "NFC","NFD","NFKC","NFKD" の違いをよく忘れるので,メモします. import unicodedata >>> unicodedata.normalize("NFD",",") ',' >>> unicodedata.normalize("NFC",",") ',' >>> unicodedata.normalize("NFKD",",") ',' …

Python-docxで1行に左揃えと右揃えを混在させる

Python-docx はPythonでワード文書を出力できるライブラリです.ワードのみ許可される事務所類を自動生成するのに便利です. 1行に左揃えと右揃えを混在させる方法が分かったのでメモします. TabStopという便利な機能がワードにあります*1.TabStopはタブの…

HxPat公開

特許の分類検索を補助するサービスを作成してみました. Vue.js, Djangoの練習を兼ねています.3日間で完成に至ったのは,Vue.jsがよいライブラリであるおかげです. hxpat.herokuapp.com ICPやFIなど特許分類を用いた検索に有用なツールだと思います.使っ…

EOFError: marshal data too short

Pythonで1つのプロジェクトに対して複数の環境で編集すると, EOFError: marshal data too short というエラーが出ることがある.これは.pycファイルが原因のようで,pycacheディレクトリの*.pycファイルを削除することで解消される. 毎回削除するのは面倒…

Selenium3のChromeDriverでpdfをダウンロードする

Chromeにはpdfを表示するための機能が搭載されており,ChromeDriverでpdfにアクセスしても表示するだけでダウンロードされない.いろいろな拡張機能を無効にすることで,pdfをダウンロードできるようにする. 環境: MacOS 10.12.4, ChromeDriver 2.29 (Chrom…

Selenium 3 をPythonで使う

最近Seleniumがversion 3になったようで,pythonのpipでインストールしてもそのまま使えなかったので,自分用にメモ. 環境 MacOS 10.12 Python 3.5.2 Selenium 3.0.2 Firefox 50.1.0 インストール sudo pip3 install selenium Mozillaのgeckodriverをダウン…

Herokuのローカル開発環境の整備

VMware上のUbuntu 16.04 LSTにHerokuのローカル開発環境を作成するためのメモ.PythonのDjangoを使ったWebアプリケーションの開発を目的とした記事です. パッケージのバージョンなどは現時点でのもので,適宜読み替えてください. VMware FusionのゲストOS…

MacでOpenCVとpythonを使う

MacでOpenCVとpythonを使う方法の備忘録です.homebrewしたりする方法もあるみたいですが,ここではbinaryからbuildします. 環境 iMac 2011 OS X El Capitan 10.11.1 Python 3.5 CMake 3.4.0 インストール OpenCV OpenCV library 上記サイトから,OpenCV fo…

chainerでAuto Encoderの作成と学習

chainerでAuto Encoder(自己符号化器)を作成し,MNISTの手書き文字を学習させてみた. Auto Encoderは,目標出力を伴わない,入力だけの訓練データを使った教師なし学習により,データをよく表す特徴を獲得し,ひいてはデータのよい表現方法を得ることを目標…

chainerで回帰順伝播型ニューラルネットワーク

この記事と同じ題材を扱った,より新しい記事を作成しました. PyTorch で LSTMCell を使ってみる - みーのぺーじ 最近ホットな話題であるdeep learningをやってみようと思って,まずはchainerで回帰の順伝播型ニューラルネットワークを作成し,sin関数を学…

Ubuntuでsystemdの使い方

Djangoを使ったPythonのWebアプリケーションをデプロイするのにgunicornを使います.この時gonicornを常時起動させる必要があり,systemdの出番となります. gonicornをsystemdを使ってデプロイする方法はこちらに詳しく書いてありますが,備忘録を兼ねてま…

Google Compute Engineで安定できれいにpythonをインストールする

Google Compute Engineで安定できれいなpython3をインストールするにはいくつかコツがあるので,備忘録を兼ねてメモします. Google Compute Engineをはじめクラウドではいろいろなインスタンスの種類があって,高性能なものほど高価です.しかしサーバーサ…

リストを指定した数で区切るPython関数

リストを指定した数で区切るPython関数です. ls: 区切る元のリスト, n: 区切りをいれる数 def divide_list(ls, n): for i in range(0, len(ls), n): yield ls[i:i+n] 実行結果 (1-99) ls = list(range(100)) print(list(divide_list(ls,10))) print(list(di…

PythonのPillowで画像処理

Pythonで画像処理をするには,opencvなどのライブラリが有名みたいですが,単純な画像処理ならばPillowというライブラリが簡単みたいなので,使い方をまとめておきます. 環境 : Python3.4.2 on Mac OS X 10.10.3 リンク Pillow Docs インストール $ sudo pi…

Google App EngineでDjangoの管理画面が使えない

Google App EngineでDjangoの管理画面(admin/)で, You don"t have permission to edit anything. (変更のためのパーミッションがありません。) というエラーが表示されたら,urls.pyの内容を確認してください. # url.py from django.conf.urls import patt…

PythonでListの行と列を入れ替える

Pythonにて行と列を入れ替えるには,zip(*list)を使用します. data = [ [1,2,3,4,5], [6,7,8,9,0], [3,4,5,6,7] ] for x in zip(*data): print(x) 出力は, (1, 6, 3) (2, 7, 4) (3, 8, 5) (4, 9, 6) (5, 0, 7) となります. Pythonでアスタリスクはリスト…

久しぶりにPythonをWindowsにインストールしたら簡単になっていた

久しぶりにWindowsでPythonを使うことになり,Python 3.4.2をインストールしたのですが,すごく簡単になっていたので感動しました. これがインストーラーのスクリーンショット. なんとpipがデフォルトでインストールされ,Pathも自動で通してくれた. なの…

Pythonでエクセルファイルを扱う

Pythonでエクセルファイルを扱うためのモジュールはいくつかありますが,多くはうまく動かないようです. 現在は,python3.4 と xlwt-future 0.8.0 を利用するのがよさそうです.

UbuntuでPythonのDjangoを使う

DjangoをUbuntu上のPythonで動かすためのインストールと設定の方法をまとめておきます.(参考:Setting up Django and your web server with uWSGI and nginx) 上記のページではvirtualenvを使用していますが,pythonにはもともとvenvが標準であるので,ここ…

UbuntuでPythonのvenvを使う

PythonでWebサービスを作るときに,Pythonの仮想環境があるといろいろと便利なので,venvを使ってみました. 環境 Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-36-generic x86_64) python3.4.2のインストール python3.4.2 Gzipped source tarball (download) 以下…

Python3でエクセルファイルを扱う

Pythonでエクセルファイルを扱うには,xlrd / xlwt / xlutils パッケージを使えばよいのですが,2014.9.28現在python3に対応していないので,これらをインストールすると以下のようなエラーが出ます. $ sudo pip install xlwt Downloading/unpacking xlwt D…

Djangoでファイルをダウンロードする

Djangoでサーバーからファイルをダウンロードする方法を紹介します. view.pyにて,download(request)を実行するとファイルがダウンロードされるようにします.python3.4にて確認済み. テキストファイル .txt from django.http import HttpResponse import …