2016年08月13日

pythonのjoblibでコア数以上の並列が可能か確認する

sleepさせながら行う処理を100個ほど立ち上げたかったので、4コアのマシン上でちゃんとプロセスが100個並列で立ち上がってくれるか、それともどっかで頭打ちしてしまうのか確認する。続きを読む

Python3でURLから{schema}://{domain}/を抜き出したい

http://www.example.com/foo/bar/baz というURLがあった時に、http://www.example.com/ の部分だけ抜き出したかった。

StackOverFlowにPython2での抜き出し方が書いてあった。Python3用だと下記のように書けるようだ。

from urllib.parse import urlparse
url = 'http://www.example.com/foo/bar/baz'
'{uri.scheme}://{uri.netloc}/'.format(uri=urlparse(url))
  #=> http://www.example.com/

2016年04月25日

pythonのrequestsでリトライとプロキシを設定

requestsを使ってAPIからデータ取ろうと思った時に調べたこと。 続きを読む

2016年04月23日

pythonで並列ループ

jobidのParallelを使うと便利らしい

$ sudo pip install joblib
続きを読む

2015年12月28日

Matplotlibで3Dでplotしようとするとエラーになる(2回目)

以前も同じ問題に引っかかったけど、3Dでplotしようとすると下記のエラーが出た。

AttributeError: 'module' object has no attribute '_string_to_bool'
続きを読む

2015年12月26日

pandasでカラムの値を列に変換する

こんなtsvがあったとする。 続きを読む

2015年12月22日

pandasでDataFrameの最初の行のSeriesを取る

こんなDataFrameがあったとする。 続きを読む

2015年12月14日

ipythonでスタートアップ時に規定のコマンドを実行させる

毎回、import numpy as npとか打つのが面倒になったので、起動時に必要なコマンドは自動実行してしまうことにする。

下記のディレクトリに適当なファイル(startup.ipyとか)を作れば、そこに記述したコードがスタートアップ時に実行される。 続きを読む

2015年12月12日

pandasのDataFrameのランダムソート

DataFrameのランダムソートをしようと思った時に、これまでは apply(lambda x: np.random.random()) みたいなことをしてランダムなカラムを作ってソートをしてたんだけど、もっといいやり方がStackOverFlow先生に良いやり方が書いてあった。

http://stackoverflow.com/questions/15772009/shuffling-permutating-a-dataframe-in-pandas 続きを読む

2015年12月05日

pandasのapplyで複数の値を同時に返したい

こんなDataFrameがあったとする。 続きを読む

pandasで例外を無視しつつObject(文字列)を数値に変換する

何行かエラーレコードが混じってる場合、astypeで型を変えようとしても落ちる。

例えば下記は1つ目のカラムが数値、2つ目のカラムが文字列を想定していたけど、途中、数値が入るべきところに文字が入ってしまっている。 続きを読む

2015年09月23日

pythonのlistでgetOrElse的なこと

pythonのlistからインデックス指定で要素を取ろうとしたけど要素がなかった場合にデフォルト値を返したい。そんな時にどう書くと良いのかわからなかったので調べる。こんな感じで良いんだろうか。 続きを読む

2015年08月31日

2015年08月05日

2015年07月19日

ipythonのhistoryの中身をdumpしたい

「あれ、この前書いたソースコードどこやったっけ……。あー、そういえばipythonで書いてどこにも書き写してないや」みたいな時に、ipythonのhistoryをまとめ読みしたくなることってありますよね。

historyコマンドだと一度セッションを終了すると以前のセッションは出てこない。でもhistoryファイルには前セッションの内容も残っている。セッションをまたいでhistoryを取る方法もありそうな気がするけど、さらっと検索した限りだと見当たらなかったので、historyファイルを参照することにしてみる。 続きを読む

2015年07月03日

Matplotlibで3Dでplotしようとするとエラーになる

3Dでplotしようと思ってサンプルコード通りに書いてみたところ、下記のようなエラーが出る。

AttributeError: 'module' object has no attribute '_string_to_bool'

どうやらpipでインストールする際に3Dも入れる設定をしないといけないらしい。

$ pip insatll --upgrade matplotlib[mplot3d]

上記を実行したら普通に動いた。

前に動かした時は特に3D用に入れた記憶がないのだけど、以前からこうだったっけ。apt-getで入れたから違うとかあるのかな。

2015年06月28日

matplotlibで日本語が文字化けする場合

こっちにも書いたけど、さっきやり方を忘れて調べようと思った時に検索にうまく引っかからなかったので、タイトルに検索ワードを入れて再まとめ。

とりあえず下記で設定できる。

import matplotlib

# matplotlibのデフォルトフォントをTakaoGothicに設定
font = {'family' : 'TakaoGothic'}
matplotlib.rc('font', **font)

TakaoGothicのようなフォント名は、fc-listで出力されたものを使用。

$ fc-list | grep Takao

/usr/share/fonts/truetype/takao-mincho/TakaoExMincho.ttf: TakaoEx明朝,TakaoExMincho:style=Regular
/usr/share/fonts/truetype/takao-mincho/TakaoPMincho.ttf: Takao P明朝,TakaoPMincho:style=Regular
/usr/share/fonts/truetype/fonts-japanese-gothic.ttf: Takao Pゴシック,TakaoPGothic:style=Regular
/usr/share/fonts/truetype/takao-gothic/TakaoExGothic.ttf: TakaoExゴシック,TakaoExGothic:style=Regular
/usr/share/fonts/truetype/fonts-japanese-mincho.ttf: Takao P明朝,TakaoPMincho:style=Regular
/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf: Takao Pゴシック,TakaoPGothic:style=Regular
/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf: Takaoゴシック,TakaoGothic:style=Regular
/usr/share/fonts/truetype/takao-mincho/TakaoMincho.ttf: Takao明朝,TakaoMincho:style=Regular

よし、これで次に忘れた時はすぐ見つかるだろう。

2015年02月19日

CentOSにpipでscipyを入れようとしてlapack/blasがいないと言われた

エラーメッセージは下記

numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

atlasもlapackもblasも入れてなかった。

yumで入れる。

yum install atlas-devel lapack-devel blas-devel

これで通った。

2015年02月13日

pandasでindexの連番を振り直す

sortして連番になっていたindexが乱れた時に振り直す想定。

続きを読む

2015年01月17日

IPythonで%pylabしたら_tkaggがimportできないと言われた場合

下記のようなエラーが出た場合。

ImportError: cannot import name _tkagg

tk-devを入れてmatplotlibを入れ直したら動くようになった。

下記、Ubuntuの場合

# tk-devを入れる
sudo apt-get install tk-dev

# matplotlibの入れ直し
sudo pip uninstall matplotlib
sudo pip install matplotlib

2015年01月16日

Ubuntu14.04にOpenCVをインストールする

公式サイトにインストール手順的なものは載っている。
http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html

が、この手順でインストールを進めると、configureでffmpegがないと言われたり、makeでpython周りで落ちたりとうまく入らなかった。 続きを読む

2014年12月30日

numpyとかscipyとかのバージョンの表示方法

numpy

import numpy as np
np.version.full_version
  #=> '1.8.1'
続きを読む

2014年12月14日

pandas14とgoogle-api-python-clientを同時に入れたらpandasがimportできなくなった

google-api-python-clientとpandasを一緒に入れると、バージョンによってはpandasがimportできなくなるらしい。続きを読む

2014年12月13日

PythonでGoogle Calendar APIから日本の祝祭日を取得する

日本の祝祭日の情報が欲しかったんだけど、あまり良いAPIが見当たらなかったので、Google CalendarのAPIから取得することにする。こういう情報は国がcsvでもなんでも良いからさらっと提供してくれると助かるのだけど。 続きを読む

2014年12月12日

おまじない

# -*- coding: utf-8 -*-
# ↑ おまじない

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
# ↑ おまじない

2014年05月04日

Yahoo形態素解析にリクエストするPythonのコード

requestsを入れておくこと。

$ pip3 requests
続きを読む

2014年04月24日

PDFからテキストを抽出する

PDFの情報をテキストファイルで落としたかったので、URLを指定してテキストに変換するような簡単なスクリプトを書く。

すっかりご無沙汰でどうやって書くか忘れてしまったPythonさんを利用。そうか、xrangeはもうなかったか。

テキストの抽出にはxpdfを利用。以下、Ubuntuの場合。続きを読む

2009年12月28日

Pythonのselfに関する記事

Pythonのselfの意味をGuidoが語ったものを邦訳した記事を見かけたので(1年前の記事だけど)、なんとなく貼っておきます。

http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay

Pythonを勉強していると「selfって冗長じゃね?」と思う瞬間があると思いますが(私は最初学んだ時にそう思った)、この子がいるお陰で混沌が入り込む隙間が埋まってるなぁと思う瞬間はけっこうあります。

2009年12月27日

PythonでHTTP通信

PythonでHTTP通信をする際の簡易コードを書いた。
http://www.mwsoft.jp/programming/python/http_request.html

やはりPythonは何書いても綺麗に見える。

書いていて、「雑然」「冗長」「手続き」「奔放」みたいな感覚が生まれない。「整然」「簡潔」という言葉が似合う。

PythonでSQLite3を使う

PythonはSQLiteを同梱しているので、使用する際には特に準備はいらない。

「import sqlite3」すれば即使える。たいへん楽でした。

PythonでSQLite3を使う
http://www.mwsoft.jp/programming/python/sqlite3.html

2009年12月26日

【Python】printで改行コードを末尾に付けない

もっと良い書き方があったりするだろうか。

1. printにend指定
print( "hello", end="" )

2. sys.stdout.writeを直接呼ぶ
sys.stdout.write( "world" )