Works by

Ren's blog

@rennnosuke_rk 技術ブログです

Python

【python】QRコードを生成する

メモ。 qrcode モジュールを使えば、pythonで簡単にQRコードの作成ができます。 Usage import qrcode # QRコードに埋め込みたいテキストを引数に渡す # PIL.Imageオブジェクトが返戻される img = qrcode.make('hoge') # 保存 img.save('./qrcode.png') Resul…

【python】google-image-downloadでGoogle上の画像を一括取得する

google-image-download コマンドライン上で動作する画像収集用ツールです。 github.com Usage pipでインストールします。 $ pip install google_images_download これですぐ利用可能になります。 shell上で以下のコマンドを実行すると、実行ディレクトリ配下…

【python】Flaskを使ってAPIサーバを公開する

Flaskとは Flaskとは、pythonのWebフレームワークです。 軽量なWebフレームワークであり、小さく使い始めることができるのが特徴です。 公式でも"microframework"と銘打っています。 Welcome | Flask (A Python Microframework) 同じpythonのフレームワーク…

【python】numpy配列の特定の条件を満たす要素のインデックスを取得する

メモ。 numpy.arrayオブジェクトの要素のうち、指定した条件を満たす要素は下記のように取得できる。 import numpy as np arr = np.array([[1,2,3],[4,5,6]]) # array([[1, 2, 3], # [4, 5, 6]]) # 特定の条件を満たす要素を取得 arr[arr > 3] # array([4, 5…

【Watson/python】IBM Watson Visual Recognitionを使って、pythonスクリプト上で画像分類を行う

IBM Watson Visual Recognition IBM Watson Visual Recognitionは、IBMが提供するDeep Learningを利用した画像認識サービスです。 www.ibm.com IBM Cloud上で利用することができ、APIやSDK経由で画像データの分類を行うことができます。 今回はpython用Watso…

【python】pipでファイル内に記述した複数モジュールを一括インストールする

メモ。 pip install -rで、ファイルに記述したモジュールを一括してインストールできる。 # インストールしたいモジュールを記述したファイル $ cat hoge.txt asn1crypto==0.23.0 bleach==1.5.0 certifi==2017.11.5 cffi==1.11.2 chardet==3.0.4 cryptograph…

【python】コマンドラインパーサclick

clickとは Welcome to the Click Documentation — Click Documentation (5.0) clickはpythonのコマンドライン解析用モジュールです。 pythonスクリプトをCLI上で実行したときに、コマンドライン引数のラベルを定義したり、ヘルプを表示するなどの機能を提供…

【python】argparserでコマンドライン引数を解析する

argparser 16.4. argparse — コマンドラインオプション、引数、サブコマンドのパーサー — Python 3.6.5 ドキュメント argparserはpython標準モジュールの一つで、pythonスクリプト実行時に受け取ったコマンドライン引数を解析するのに役立ちます。 例えば、l…

【python】コマンド一行でwebサーバの立ち上げ

pythonを使えば、一行でローカルのHTTPサーバを立ち上げ可能。 # ポート番号8000でwebサーバ立ち上げ $ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... # 引数にポート番号を指定可能 $ python -m SimpleHTTPServer Serving HTTP on 0.0…

PythonでMacOS Xデスクトップアプリを作るときの選択肢【rumps/PyObjC】

この記事は、python Advent Calendar 2017【22日目】の記事になります。 本記事では、pythonでMacのデスクトップアプリを作成できるライブラリrumpsとPyObjCを紹介します。 pythonでMac固有の機能を持つアプリを実装する デスクトップアプリケーションをpyth…

【python】pythonのクロージャ

pythonでは、クロージャと呼ばれる関数オブジェクトを実装することができます。 関数オブジェクトとは、クラスのインスタンスのように関数をオブジェクトとして扱ったものです。 クロージャの定義は、Wikipedia氏曰く 引数以外の変数を実行時の環境ではなく…

【python】pythonにおけるスコープ【グローバル変数】

pythonでは変数のスコープに最新の注意を払う必要があり、特に万一グローバル変数(厳密にはスコープはモジュール内に収まるので、モジュール変数?)の変更を扱うような場合、気を緩めていると下のコードに示すような問題を引き起こす可能性があります。 is…

【python】リスト・ジェネレータ・集合・辞書内包表記

リスト・ジェネレータはともかく、辞書なんかはたまに忘れるのでメモ。 In [1]: array = [1, 2, 3, 4, 5, 6, 7] # リスト In [2]: [a*a for a in array] Out[2]: [1, 4, 9, 16, 25, 36, 49] # ジェネレータ In [3]: (a*a for a in array) Out[3]: <generator object <genexpr> at 0x1041</generator>…

【python】スライシングしたリストへの代入

pythonのシーケンスにはスライス機能と呼ばれる糖衣構文が用意されていますが、 In [1]: a = [1, 2, 3, 4, 5, 6, 7] # 部分リストを取得可能 In [2]: a[2:5] Out[2]: [3, 4, 5] どうやらスライスによって一定範囲に対する代入操作も行えるようで、さらに代入…

【python】スクリプト実行中にインタプリタのバージョンを確認する

使用するインタプリタは3系で限定したいときなど、スクリプトを実行しているインタプリタのバージョンを知りたいときに sysモジュールが持つversion_infoメンバが使えます。 In [1]: import sys # version_info In [2]: sys.version_info Out[2]: sys.versio…

【python】書いてて気づいた2系と3系の違い

pythonの2系と3系間で記述の仕方や処理の挙動が異なる場所について、 自分が気になった場所を列挙しました。 随時更新していきます。(最終更新2017/3/15) reduceが組み込みの関数ではなくなった 2系では組み込みの関数であったreduceはfunctoolsをimportし…

【python】"import *" でインポートされるモジュールを制限する

パッケージ中の__init__.py内で__all__変数を書き換えることで、import *でimportするモジュールを制限することができます。 __all__ = ["hoge", "fuga", "piyo"] このような記述を例えばpackage/__init__.pyが含むとき、 from package import *によってimpo…

【python】ユーザクラス定義時の==比較定義__eq__()と!=比較定義__ne__()

友人にちらと聞いたpython話のメモです。 pythonのユーザ定義クラスでは、Javaでequals()メソッドをオーバライドするように、同値(または同一)比較の再定義をすることができます。これはpythonの特殊メソッド(今まで組み込み関数と混同してました・・・)…

【python】関数呼び出しとメソッド呼び出しの速度を比較する

前々から気になっていた、関数呼び出しとメソッド呼び出しの速度比較の結果をやってみた。 あまり厳密ではないけれど・・・ import time import numpy as np # 適当なクラス class Hoge: # 適当なメソッド def hoge(self): print ('hoge') # 適当な関数(Hoge…

【Python】実引数として渡すリストのアンパック

Python書いてて初めて知ったのでメモ。 関数に引数を渡すとき、以下のようにリストが格納された変数の頭に"*"をつけることで、 リストがアンパックされて引数の羅列として扱えるらしい。 import math # 極座標系に変換 def polar_coordinates(x, y): r = mat…

【Python】IPythonをつかう

IPython Pythonをインストールすると、標準のインタラクティブシェルがすでに使えるようになっているが、 別のPythonインタラクティブシェルであるIPythonを使うとより快適にPythonコードを実行できる。 インストール pip install ipython んで $ ipython2 b…

【python】デコレータ

pythonにはデコレータ構文が標準で実装されている。デコレータを使うことで、既存の関数に対し簡単に別の機能を付加(デコレート)することができる。 例えば、以下の様なコードを書いたとする。 def cake(): print("cake") cake() とくれば、もちろん出力は…