牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Python

Python の pandas でヒストグラムを重ねて描画するメモ

(Python2.7.7, pandas0.14.0)csvデータは『データサイエンティスト用船読本のやつ流用』 import pandas as pd # import matplotlib.pyplot as plt data = pd.read_csv("body_sample.csv") male = data[data["gender"] == "M"] female = data[data["gender"] …

『データサイエンティスト養成読本』の「第4章 Python による機械学習」で一部そのままだと動かなかったりするので修正してみるメモ

(pytho2.7.7)今さら『データサイエンティスト養成読本 』を購入。 「第4章 Python による機械学習」で一部エラーやらで動かなかったりしたのでメモ。 Google先生に訊いても引っかからず正誤表も無いような。 この問題って自分だけなのかしらん? 修正・変更 …

Python の pandas で openpyxl のエラーが出る件のメモ

(python2.7.7) pandas 使うとエラー出ちゃう $ pip install pandas $ ipython In [1]: import pandas /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/excel.py:626: UserWarning: Installed openpyxl …

Python で『書籍 "RとRubyによるデータ解析入門』 のサンプルコードを書いてみるメモ

元 『O'Reilly Japan - RとRubyによるデータ解析入門』 https://github.com/setoyama60jp/everyday/blob/master/Chapter4/restroom.rb https://github.com/setoyama60jp/everyday/blob/master/Chapter4/example4-4.rb Ruby のサンプルを Python で書き換えた…

Python で魔法陣を作ってみるメモ

(Python2.7) ヒンズーの連続方式 1. 上段の中央を1にする 2. 右上に次の数字を置いていく(最上段の上は最下段になる。下の図を参照。) 3. 右上が埋まっていたら一つ下に次の数字を置く 4. 再び右上へと数字を埋めていく 5. 後は3,4の繰り返しで完成 魔方陣…

Pythonで『RとRubyによるデータ解析入門』のコードを移植してみるメモ

(python==2.7.6, ruby==2.0.0) 4章 オフィスとトイレの関係 待ち行列の人数をscvファイルで書き出す。 (example4_4 のみ。他はそのうちやるかも?) そのまま移植しようとしたら上手く動かなかったので、クラスふたつにしたり書き直した。 似たような結果に…

Javascript と Python でクロージャー使ったカウンタのメモ

Javascript Javascript01 (n++) function counter() { var n = 1; return function() { return n++; }; }; var count = counter(); console.log(count()); console.log(count()); console.log(count()); console.log(count()); // 1 // 2 // 3 // 4 Javascri…

Python によるデータ解析や統計のメモ

Python Data Analysis Library — pandas: Python Data Analysis Library NumPy — Numpy SciPy.org — SciPy.org matplotlib: python plotting — Matplotlib 1.4.0 documentation Think Stats: Probability and Statistics for Programmers データ分析ライブラ…

Python と R でクロス集計の速度比較してみるメモ

(python==3.3.2, R==3.0.2) R より Python の方が速いらしいので計測して見る。 下記サイトのコードを拝借してやってみた データ分析ライブラリPandasの使い方 | Librabuch 下準備 data.csv blood_type,sex O,F O,F O,M A,M A,M B,F A,F AB,M O,F blue,M B,M…

IPython の %timeit で処理時間を計測してみるメモ

Announcements — IPython In [48]: def foo(): ....: arr = [] ....: for n in range(100): ....: arr.append(n/3) ....: return arr ....: In [49]: %timeit foo() 10000 loops, best of 3: 22.7 us per loop In [50]: %timeit [n/3 for n in range(100)] 1…

Javascript で Loto6 の数字をランダムに取得してみるメモ

Python での例 from random import sample print(sorted(sample(range(1, 44), 6))) # ex -> [14, 15, 31, 33, 40, 41] Javascript で書いてみる function range(start, end) { var numbers = []; if (!end) { end = start; start = 0; } for (var i = start…

Javascript で python の range() みたいのを書いてみるメモ

function range(start, end) { var numbers = []; if (!end) { end = start; start = 0; } for (var i = start; i < end; i++) { numbers.push(i); } return numbers; } console.log(range(5, 18)); //-> [ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ]…

Javascript で Python の random.sample みたいなのを書いてみるメモ

var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43]; var result_numbers; // function random_sample(population, k)…

Emacs で python のコードを flake8 でチェックするメモ

(macosx==10.8, python==2.7, emacs==24.3, flake8==2.1.0) http://flake8.readthedocs.org/en/latest/ MacPorts でインストールしている場合 $ sudo port install py27-pip $ sudo pip-2.7 install flake8 Emacs M-x package-list-pakages インストール: fl…

Python SimpleHTTPServer みたいなのを PHP でやる場合のメモ

(python2.7, php5.5) Python python -m SimpleHTTPServer 8080 PHP php -S 127.0.0.1:8080 memo Python SimpleHTTPServer with PHP - Stack Overflow

さらっと AngularJS1.2.0 でクライアントサイド、Python3 と Django1.6 で api サーバ を試してみるメモ

(Python==3.3, Django==1.6, djangorestframework==2.3.8, angular1.2.0, generator-angular0.6.0-rc.1) Django で apiサーバ作成 virtualenv mkvirtualenv booklist_sample --python /opt/local/bin/python3.3 インストール $ pip install django $ pip ins…

Python でデザパタ -- アダプタ/Adapter

(Python2.7) Adapter 元ネタ アダプタ Ruby 2.0.0 デザインパターン速攻習得[Adapter][Design Pattern] - 酒と泪とRubyとRailsと デザインパターン-Adapter CapmNetwork Adapter.py #!/usr/bin/env python # *-# -*- coding: utf-8 -*- class Adaptee(object…

Python と Java と ダックタイピングとインタフェースのメモ

『第127回 Ruby vs Java ダックタイピングとインタフェースで見る多態性』を読んで Java のインターフェースが何で必要なのか何となく理解できた気がするのでPythonで書いてみる。 Python でダックタイピング ducktyping.py class Human: def touch(self, so…

Django + Bootstrap3 でゲストブックアプリを作ってみるメモ

(python==2.7.5, django==1.5.5, twitter_bootstrap==3.0.0) github にコードあげてみた https://github.com/CortYuming/django_guestbook_sample メモ クラスベース汎用ビューの ListView と CreateView を混ぜてささっと作ろうとしたが、うまくいかず。 結…

Python でデザパタ -- シングルトン/Singleton

(Python2.7) Singleton pattern 元ネタ シングルトン Ruby 2.0.0 デザインパターン速攻習得[Singleton][Design Pattern] - 酒と泪とRubyとRailsと singleton_module.py class Singleton(object): def __init__(self): self.counter = 0 get_singleton = Sing…

Python でデザパタ -- ファクトリメソッド/Factory Method

(Python2.7) Factory Method 元ネタ ファクトリメソッド Ruby 2.0.0 デザインパターン速攻習得[Factory Method] - 酒と泪とRubyとRailsと InstrumentFactory class Saxophone(object): def __init__(self, name): self.name = name def play(self): return "…

様々なプログラミング言語で再帰の階乗を書いてみるメモ

変更 階乗 - Wikipedia Haskell fact :: Int -> Int fact 0 = 1 fact n = n * fact (n - 1) main :: IO () main = do print (fact 10) -- > 3628800 Python def fact(n): if n == 0: return 1 return n * fact(n - 1) print(fact(10)) #-> 3628800 Ruby def …

Virtualenv で使用する Python のバージョンを指定するメモ

(MacOSX10.8, MacPorts) mkvirtualenv tddbcpy3 --python /opt/local/bin/python3.3

『TDDBC 仙台 the 3rd』に参加してきましたメモ

追記2013-10-07 若干リファクタリングしてみた https://github.com/CortYuming/tddbc-sendai-the-3rd オープニング 2013/10/12 (土) 主催者の方ルパン三世のコスプレ。スバラシスw 基調講演 和田卓人さん id:t-wada いい声でウラヤマシスw お話を聞いたらTDD…

Python で交差・積集合と差集合のメモ

(python2.7)パーフェクトPython に載ってた。 リスト >>> a = [1,2,3,4] >>> b = [3,4,5,6] >>> set(a).intersection(set(b)) set([3, 4]) >>> set(a).difference(set(b)) set([1, 2]) >>> set(a).symmetric_difference(set(b)) set([1, 2, 5, 6]) 追記 >>> …

Django で簡単に戻るボタンのメモ

(django==1.5.4, python==2.7.3) <input type="button" value="Back" onClick="javascript:history.go(-1);"> もしくは <button onClick="javascript:history.go(-1);">Back</button> こんな感じかな参考サイト python - Django templates: create a "back" link? - Stack Overflow

yasnippet で Python の自作のスニペットを展開したらインデントが崩れる場合の対策メモ

問題 こんな感じのスニペットを作成 # name: hoge # -- class ${1:classname}DetailView(DetailView): model = $1 class $1ListView(ListView): model = $1 context_object_name = 'object_list' 展開するとインデントずれる 自動でインデントされてしまう c…

django-registration でユーザ認証のメモ

(django==1.5.4, python==2.7)ユーザ登録するとメール来て、その本文にあるリンクに飛ぶとログインできるようになるやつ Rails の Devise 的な感じ https://bitbucket.org/ubernostrum/django-registration インストール pip install django-registration 設…

Python で外部モジュールなどを使わずに翌月末日などを取ってみるメモ

(python==2.7)arrow とか dateutil とか便利だけどあえて使わずにやってみる。 何となくメソッドチェーンっぽくやってみる 翌々月以降や前々月以前、月初と月末を取れるようにしてみる month_date_utility.py #!/usr/bin/env python # *-# -*- coding: utf-8…

Django で開発時にメール送信の確認するメモ

(django==1.5, python==2.7) settings.py EMAIL_USE_TLS = False EMAIL_HOST = 'localhost' EMAIL_PORT = 1025 デバッグ用メールサーバ起動 $ python -m smtpd -n -c DebuggingServer localhost:1025 送信確認 shellからメール送信してみる $ python manage.…

PyCon APAC 2013 に行ってきましたメモ

PyCon APAC 2013.9.13-16 PyCon APAC 2013 - PyCon APAC 2013 09-13 チュートリアルB 実践で学ぶDjangoフレームワーク 〜ECサイトを作ってみよう〜 PyCon APAC 2013 チュートリアル - connpass 内容が盛りだくさんで一日で終わるかなこれと思いましたしたが…

最近 Python で時間を扱うモジュールは『arrow』がブームらしいメモ

(python==2.7, arrow==0.3.5) crsmithdev/arrow · GitHub Arrow: better dates and times for Python — Arrow 0.4.4 documentation Arrow - better date & time manipulation for Python : Python dateutilあるけど、arrowもいいらしい。 こっちの方がモダン…

Django で PDFを作成するメモ

(Django1.5, Python2.7) reportlab を利用する ReportLab - Content to PDF Solutions pip install reportlab Django で動作確認用サンプルアプリを作成 プロジェクト作成している前提で ./manage.py startapp reports reports/urls.py from django.conf.url…

Djangoでネストしたurls.pyとredirectのreverseでの名前付き URL パターンの呼び方のメモ

(Django1.5, Python2.7) apps/urls.py from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns( '', url(r'^admin/', include(admin.site.urls)), url(r'^contact/', include(…

Djangoのクラスベース汎用ビューでペジネータのメモ

追記2013-09-07: get_queryset(Django1.5, Python2.7) 下準備 プロジェクト作成してDBとか設定 適当にアプリ作成 $ ./manage.py startapp cars cars app cars/models.py from django.db import models class Car(models.Model): name = models.CharField(max…

Python の標準ライブラリでちょこっと暗号化のメモ

(Pyhton2.7) >>> from hashlib import md5 >>> md5('hoge').hexdigest() 'ea703e7aa1efda0064eaa507d9e8ab7e' >>> md5('777').hexdigest() 'f1c1592588411002af340cbaedd6fc33' md5, sha, hashlib - スコトプリゴニエフスク通信 hashlib – 暗号ハッシュとメ…

Django で ImageField の upload_to に user.id を入れたい場合のメモ

(Django1.5, Pyhton2.7) models.py import os from django.db import models from django.contrib.auth.models import User def image_file_name(instance, filename): return os.path.join('images', str(instance.user.id), filename) class UserProfile(m…

Django で ImageField で画像を更新する時に変更前の画像を削除する場合のメモ

(Django1.5, Pyhton2.7)修正:2013-09-01 models.py def avatar_file_name(instance, filename): return os.path.join('avatar', str(instance.user.id), 'original', filename) class Profile(models.Model): user = models.OneToOneField(User) avatar = m…

Django で gunicorn の起動と停止のメモ

(Django1.5, python2.7) Gunicorn で Django を使う方法 — Django 1.4 documentation Gunicorn - Python WSGI HTTP Server for UNIX nginx 設定してる前提で インストール sudo pip install gunicorn 起動 manage.py ファイルがあるのと同じディレクトリで g…

Django のテンプレートで、タイトルをページ毎に変更したい場合のメモ

(Django1.5, python2.7) 親テンプレート base.html 例:サイト名「sample-site」をタイトルにいれる <title>{% block title %}sample-site{% endblock title %}</title> 子テンプレート child.html {% extends "base.html" %} {% block title %}child page | {{ block.super…

Django でフィクスチャのメモ

(python2.7, django1.5) モデルに初期データを投入する — Django 1.4 documentation settings.py 追加 FIXTURE_DIRS = ( os.path.join(ROOT, 'fixtures'), ) フィクスチャ作る fixtures/hoge.json ./manage.py shell とかでデータをいくつか作ってから、ダン…

Django でユーザごとに一覧表示させるのに汎用ビュー使う場合と使わない場合のメモ

(python2.7, django1.5) models.py from django.db import models from django.contrib.auth.models import User class Say(models.Model): message = models.CharField(max_length=255) date_created = models.DateTimeField(auto_now_add=True) user = mod…

Django のページネイトを使い回しできそうな感じにしてみるメモ

(python2.7, django1.5)pipにあるパッケージとか使わずに何とかしてみたい。 http://docs.djangoproject.jp/ja/latest/topics/pagination.html View paginate.py 新規作成する。 とりあえず settings.py とかあるディレクトリに置く apps/paginate.py #!/usr…

Python で翌月1日のdatetimeを取りたい場合のメモ

(python2.7)dateutil をインストールして使うのがベターらしい インストール python2.x系を使う場合は python-dateutil 1.x系をインストール python-dateutil - Labix pip install "python-dateutil==1.5" 試してみる 翌月1日 >>> import datetime >>> today…

Django の QuerySet で sum で合計したい場合のメモ

追記:月末 (python2.7, django1.4) from django.db.models import Sum total_num = ModelName.objects.aggregate(Sum('somenum'))['somenum__sum'] python - Django SUM Query? - Stack Overflow python - django sum for a queryset - Stack Overflow

『Python Developers Festa 2013.07』に参加してきました

プログラム pyfes/201307.rst at develop · pyspa/pyfes · GitHub togetterまとめ Python Developers Festa 2013.07 #PyFes - 開始まで - Togetterまとめ Python Developers Festa 2013.07 #PyFes - ハンズオン - Togetterまとめ Python Developers Festa 20…

Emacs の jinja2-mode で Django のテンプレートを書くための設定メモ

※追記20130728: インデントの問題、複数行コメントの問題(Emacs24.3)web-mode でやろうとしたら タブ に色付けできなかったり、設定変えるの面倒そうだったので jinja2-mode を使ってみる事にした インストール M-x list-packages で jinja2-mode をインスト…

Django の html を Emacs の web-mode で書くためのメモ

(Emacs24.3, Django1.4, Python2.7) packages インストール web-mode.el - html template editing for emacs M-x list-packages でインストール web-mode yasnippet yasnippet yasnippet の snippets に web-mode ディレクトリを作ってファイル作成 html-mod…

Django で管理者を作成する時にうっかり間違えて変更したい場合のメモ

(Django1.4, Python2.7) $ ./manage.py shell > from django.contrib.auth.models import User > admin = User.objects.all()[0] > admin.username = 'foobar' > admin.save() Django: Access Admin User in Python Shell - Stack Overflow

Python の enumerate で 0 以外から始める場合のメモhajimerubaainomemo

python2.6から引数startを使えるようになってた。 for i, num in enumerate(["a", "b", "c"], start=1): print i, num #-> 1 a #-> 2 b #-> 3 c 2. 組み込み関数 — Python 2.7ja1 documentation