2018-04-01から1ヶ月間の記事一覧
問題設定 想定しているのは、たとえばこんなシチュエーションです。 s = "hoge! 1234" tmp = s.split() lst = [tmp[0], int(tmp[1])] 要するに、比較的短いリストだが性質の違うものが入っており、それぞれ違う処理をして返したいのです。 それだけなら良い…
calendarモジュールは標準ライブラリに入っていて、曜日や日付の計算にはけっこう便利なモジュールらしいです。 でもあまり周知されていないので、使い方を(自分用に)メモっておきます。 ドキュメントはここです。 8.2. calendar — 一般的なカレンダーに関…
データの正規化(標準化)をpandasでもやってみる。 正規化、標準化とは、データを分散1、平均0に変換する操作である。スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); 自分で書いてもできるが、scipyの関数を使うと簡単にできる。 >>…
概要 DataFrameから平均と標準偏差を計算する方法をメモしておきます。 目次 概要 列の平均と標準偏差を計算したい 行の平均と標準偏差を計算したい 特定の列・行だけ取り出してから計算する describeメソッドで全体の雰囲気を掴む 列の平均と標準偏差を計算…
ちょっとしたTips。 辞書(dict)は通常、一つのキーには一つの値しか登録できない。代入しても上書きされる。 >>> d = {} >>> d["hoge"] = 1 >>> d {'hoge': 1} >>> d["hoge"] = 2 >>> d {'hoge': 2} こういうときどうすれば良いのかというと、値をリスト等…
pythonのプログラムは先頭行(あるいはシェバンの次の二行目)でファイルの文字コードを指定することができます。エンコーディング宣言といいます。 こんなのとか # coding: UTF-8 こういうのもありますね。これはemacsに自動認識させるための書式らしい*1。…
はじめに pythonにはmap・filterという関数と、リスト内包表記という独自の記法があります。 どちらを使っても同じようなことができますが、どちらを使うべきなのでしょうか? 色々な視点から考えてみます。 目次 はじめに 返り値の型 冗長さ 可読性 事故 ま…
pythonにはmapという関数があります。関数型プログラミングに役立ち、大変便利な関数です。 しかし、これはデフォルトでは一つの引数を前提としています。 >>> list(map(lambda a,b: a+b, zip([1,2,3],[4,5,6]))) Traceback (most recent call last): File "<stdin></stdin>…
複数の二次元配列を結合して三次元配列に変換する方法について。 np.dstack そのものずばりのnp.dstackという関数がある。numpy.dstack — NumPy v1.14 Manual >>> a = np.array([[1,2,3],[4,5,6]]) >>> b = np.array([[7,8,9],[10,11,12]]) >>> a array([[1,…
一般的な機械学習のアルゴリズムでは、パラメタチューニングにはグリッドサーチ・交差検証を組み合わせて使うのが割と普通だと思います。sklearnにはそれ専用のGridSearchCVというクラスまで用意されています。 実際問題としては、GridSearchは良いとしても…
やりたいこと input:[0,1,0,0] output:4 極めて単純明快ですが、やるだけなら簡単なので速度を測ります。 さらに、pure pythonでやると遅いことが目に見えているのでcythonで高速にしようというネタです。 pure pythonで書いたプログラム 素晴らしいことに(…
Pythonで、順列(Permutation)と組み合わせ(Combination)がほしくなるときがある。また、順列・組み合わせの数がほしくなることもある。順列・組み合わせそのものはitertoolsで、その数はscipyで出せる。計算方法についてまとめておく。
sklearnの公式ドキュメントをよく読む方なら、色々なモジュールに"tol"というオプションがあることに気づいていると思います。 たとえばSVCだと、こんな風に書いてあります。他のモジュールも似たり寄ったりですが。 tol : float, optional (default=1e-3)To…
出力の行を上書きしたいときがある。 キャリッジリターン(\r)を使うと簡単にできるが、ちょっと難しい点もある。 方法 簡単な例を以下のサンプルコードに示す。 import time def main(): for i in range(20): print("\r{0}".format(i), end="") time.sleep…
一年以上前にこんな記事を書きました。 これはこれで今読み返すと面白い(香ばしい)記事ですが、真剣にpythonでscanfと同じことをしたくてアクセスしてきた人には役に立たないという問題点がありました。 そこで、pythonでscanfと同じことをする方法につい…
一年以上前にこんな記事を書きました。 これはこれで今読み返すと面白い(香ばしい)記事ですが、真剣にpythonでprintfと同じことをしたくてアクセスしてきた人には役に立たないという問題点がありました。 そこで、pythonでprintf的なことをする方法をまと…
記事概要 非類似度行列(距離行列)の計算方法について説明する。 計算方法 対象データと使う非類似度 とりあえず、データを5つ作る。irisの先頭5要素を抽出する。 from sklearn.datasets import load_iris iris = load_iris() data = iris.data[:5] 5*5の非…
自作したりネットから拾ってきたデータセットに、sklearnライクなインターフェースがあるとそこそこ便利です。 なので、作る方法について調べました。 とりあえずデータセットを読み込んで型を調べます。 >>> from sklearn.datasets import load_iris >>> ir…
SOM(Self-organizing maps:自己組織化写像)は割と古めの、データの可視化手法です(それ以外にも使えると思いますが)。 今回はpythonのSOMライブラリSomocluを使ってみたら、けっこう良かったというネタです。 目次 SOMの概要 ライブラリがない それでも頑…
pythonでクラスを書くとき、一番多用するのは(恐らく)インスタンス変数ですが、クラス変数もたまに使います。 しかし、pythonのクラス変数にはちょっと「クセ」があります。リスト内包表記と組み合わせたときに問題になることが多いようです。 問題の例 リ…
tabキーでインデントしようとすると表題の通りのエラーが出て、インデントできない状況になった。 ググって出てきたのはここ。Indentation not working properly in emacs for python - Stack Overflow Check the value of python-indent-offset. If it is 0…
プログラミングにはあまり関係のないテーマだし、中学校レベルの数学がわかればできるネタだが……ちょっと欲しくなったので。 問題 の2つの数(とりあえず正の実数)を考える。は次の条件を満たす。 が与えられたとき、を適当に定めたい。 つまり、ディスプレ…
三項演算子(条件演算子)はpythonの文法でもっとも特徴的な要素かもしれません。 Trueのとき if 条件 else Falseのとき これには賛否両論がありますが、とにかく便利なことには違いありません。 ただし、ネストして使うときは注意が必要です。 A if conditi…
こういう処理がしたいときがある。 i = 2049 lst = [] while i > 0: lst.append(i%10) i //= 10 # 必須 lst.reverse() print(lst) # 結果-> [2, 0, 4, 9] 「もうできたじゃん」という意見もあると思うが、C言語のコードみたいでいかにもpythonicじゃない。 …
記事の概要 素朴な疑問:「in演算子は遅いのか?」 速度を実測して検証しました。 目次 記事の概要 はじめに 検証 結果 結論 スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); はじめに inの速度は謎である。とりあえず、なんとなく速…