ブックマーク / blog.amedama.jp (7)

  • Python: pep8 は pycodestyle になったし pep257 は pydocstyle になった - CUBE SUGAR CONTAINER

    意外とまだあんまり知られていないような気がしたので、このブログにも書いておく。 PEP8 と pep8 と pycodestyle Python には PEP8 という有名なコーディングスタイルガイドラインがある。 www.python.org そして、そのコーディングスタイルに沿ったコードになっているのかをチェックするツールとして pep8 というパッケージがあった。 pypi.python.org 過去形にするのは半分正しくなくて、上記のように今もある。 ただ、これは後方互換のために残されているだけで、もうバージョンアップはされないだろう。 今後は代わりに pycodestyle というパッケージを使うことになる。 pypi.python.org これは単にパッケージとコマンドの名前が変わっただけ。 とはいえ、こちらはバージョンアップが続くので最新の PEP8 に追従していくしチェック

    Python: pep8 は pycodestyle になったし pep257 は pydocstyle になった - CUBE SUGAR CONTAINER
    cocodrips
    cocodrips 2019/09/16
  • Python: freezegun で時刻のテストを楽に書く - CUBE SUGAR CONTAINER

    時刻周りの処理はバグが混入しやすい上にテストが書きづらくて面倒くさい。 今回は、そんな面倒な時刻のテストを楽に書けるようになる freezegun というパッケージを使ってみる。 この freezegun というパッケージを使うと Python の標準ライブラリの datetime から得られる現在時刻を指定したものに差し替えることができる。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G1108 $ python --version Python 3.5.2 時刻をテストするときの面倒くささ 時刻周りの処理をテストをするときは、当然ながら色々な時刻を使ってテストがしたい。 とはいえ、そのためだけにシステムの時刻を変更しながらテストを走らせるわけにもいかないだろう。

    Python: freezegun で時刻のテストを楽に書く - CUBE SUGAR CONTAINER
    cocodrips
    cocodrips 2019/01/20
    @freezegun.freeze_time”
  • Python: docstring を書いてみよう - CUBE SUGAR CONTAINER

    Python の docstring というのは、モジュールやクラス、関数などにつける説明文のこと。 単純なコメントとの違いは、より仕様に近い内容を記述しておくことで API のドキュメントとして利用できる他、別のドキュメントから内容を読み込んで使ったりすることができる。 今回は docstring の書かれたサンプルコードを元に、REPL からその内容を参照したり、ドキュメンテーションツール Sphinx でその内容を読み込むというのを試してみる。 docstring の書かれたソースコードを用意する 以下が docstring の書かれた Python のソースコード。 内容については FizzBuzz 問題を題材にしている。 モジュールや関数の先頭で “”“ や ‘’‘ を使ってコメントを書いておくと、それが自動的に docstring として扱われることになる。 #!/usr/bi

    Python: docstring を書いてみよう - CUBE SUGAR CONTAINER
    cocodrips
    cocodrips 2018/12/20
  • リモートサーバ上の Docker コンテナで Jupyter Notebook を使う - CUBE SUGAR CONTAINER

    今回は、以下のエントリの続き。 blog.amedama.jp 上記の記事でやったことを Docker コンテナにしてみる。 使った環境は次の通り。 まずは Docker ホストとして使う Ubuntu 18.04 のマシンから。 こちらも前回と同じように Vagrant で構築している。 vagrant $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS" vagrant $ uname -r 4.15.0-29-generic そこに接続するクライアントは次の通り。 client $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.

    リモートサーバ上の Docker コンテナで Jupyter Notebook を使う - CUBE SUGAR CONTAINER
    cocodrips
    cocodrips 2018/10/25
  • Python: functools.partial() で関数やメソッドを部分適用する - CUBE SUGAR CONTAINER

    これまで存在すら知らなかったんだけど、標準ライブラリの functools.partial() はなかなか面白く使えそう。 これを使うと関数やメソッドの引数の一部をある値に固定した形で新しい呼び出し可能オブジェクトを作ることができる。 最初の例として functools.partial() の動作確認に使う関数を定義しておこう。 この関数 add() は単にふたつの引数を足し算するもの。 >>> def add(x, y): ... return x + y ... それでは functools.partial() を使って、先ほど定義した add() 関数のひとつ目の引数 x に 1 を部分適用した新しい関数 add_1() を作ってみよう。 ちなみにキーワード引数も使えるので、もし y を部分適用したい場合には functools.partial(add, y=1) になる。 >>>

    Python: functools.partial() で関数やメソッドを部分適用する - CUBE SUGAR CONTAINER
    cocodrips
    cocodrips 2018/10/10
  • Python: 機械学習で分類問題のモデルを評価する指標について - CUBE SUGAR CONTAINER

    今回は、機械学習において分類問題のモデルを評価するときに使われる色々な指標について扱う。 一般的な評価指標としては正確度 (Accuracy) が使われることが多いけど、これには問題も多い。 また、それぞれの指標は特徴が異なることから、対象とする問題ごとに重視するものを使い分ける必要がある。 今回扱う代表的な評価指標は次の通り。 正確度 (正解率、Accuracy) 適合率 (精度、陽性反応的中度、Precision) 再現率 (感度、真陽性率、Recall) F-値 (F-score, F-measure) AUC (Area Under the Curve) 上記それぞれの指標について、特徴を解説すると共に Python を使って計算してみる。 データセットには scikit-learn に組み込みの乳がんデータセットを用いた。 今回は「機械学習で」と書いてしまったけど、上記は実際には

    cocodrips
    cocodrips 2018/09/11
    何度やってもこの辺こんがらがる(´・ω・`)
  • Python: ジェネレータをイテレータから理解する - CUBE SUGAR CONTAINER

    Python のイテレータとジェネレータという概念は意外と分かりにくい。 今回は、実は深い関わり合いを持った両者についてまとめてみることにする。 というのも、最終的にジェネレータを理解するにはイテレータへの理解が欠かせないためだ。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G1036 $ python --version Python 3.6.3 イテレータとは まず、そもそもイテレータとは何者だろうか。 それについて、いくつかの側面から考えてみることにしよう。 使い方から考える 最初は、使い方という側面からイテレータとは何かを考えてみよう。 このとき、答えは「要素を一つずつ取り出すことのできるオブジェクト」になる。 実際に、使い方からイテレータについて見ていこう。

    Python: ジェネレータをイテレータから理解する - CUBE SUGAR CONTAINER
    cocodrips
    cocodrips 2017/11/24
  • 1