静かなる名辞

pythonとプログラミングのこと


2018-01-01から1年間の記事一覧

sklearnのLabelEncoderとOneHotEncoderの使い方

* はじめに sklearnのLabelEncoderとOneHotEncoderは、カテゴリデータを取り扱うときに大活躍します。シチュエーションとしては、 - なんかぐちゃぐちゃとカテゴリデータがある特徴量をとにかくなんとかしてしまいたい - 教師ラベルがカテゴリデータなので数…

【python】反転させて先頭n個取るスライス

タイトルの通りのものが必要になりました。一体どう書くのでしょう? とりあえず反転させる >>> lst = list(range(20)) >>> lst[::-1] [19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] ま、これは常識(python廃人の皆さんには)。…

【python】べき乗とべき根の計算

べき乗はxのn乗、べき根はxのn乗根です。では、pythonではどう書くのでしょうか。 2乗とかsqrtくらいはわかっても、n乗根あたりになるとすぐ出てこないという人も多いのでは? そこで、説明を書きます。

python環境構築まとめ

pythonの環境構築に悩む人たちのために、環境構築についてまとめておきます。

【python】listをforループで回してremoveしたら思い通りにならない

forループでループ対象のリストから要素を除去してしまったりすると、まったく想定と違った結果になってしまうことがあります。pythonプログラミングを始めたばかりの人がよくハマるネタです。

【python】pandasのDataFrameをLaTeX出力

そんな機能があるらしい。DataFrame.to_latex()という名前のメソッドである。pandas.DataFrame.to_latex — pandas 0.21.1 documentation これが使えると何かの役に立つかもしれないので、使い物になるかどうか確認してみる。 お試し とりあえず、てきとーにd…

VMware Playerでキャッシュを削除して仮想ディスクの容量を空ける(linux)

VMware Playerはホストとゲスト間で、ドラッグ・アンド・ドロップやコピ・アンド・ペーストによってファイルを移動できる。 便利な機能なのでつい頻繁に使ってしまうが、これは腹立たしいことにゲストの仮想ディスク上にキャッシュを生成する。 そしてこのキ…

【python】その矛盾した__eq__は・・・

私は疑問を持った pythonでは比較演算子==を使うと、内部的には__eq__メソッドが呼ばれる。 ここから、素朴な疑問が生じる。比較演算子は二項演算子なので、2つのオブジェクトに対して適用される。 どちらのオブジェクトの__eq__が呼ばれるのだろう? また、…

【python】MeanShiftのbandwidthを変えるとどうなるか実験してみた

前回の記事ではMeanShiftクラスタリングを試してみました。www.haya-programming.com このMeanShiftにはbandwidthというパラメータがあり、クラスタ数を決定する上で重要な役割を果たしているはずです。 いまいち結果に納得がいかないというとき、bandwidth…

【python】numpyでの等比数列の作り方

等比数列がほしくなった。作り方をメモしておく。

【python】sklearnのMeanShiftクラスタリングを試してみる

はじめに MeanShiftはクラスタリングアルゴリズム。クラスタ数を自動で決定してくれるという長所がある。 理論的には最急降下法で各クラスタの極大点を探していく感じらしいです。わかりやすい解説があったので、リンクを張っておきます(ただし私自身はすべ…

【python】matplotlib.cmの使い方を説明しようと思う

テーマ matplotlib.cmが直接使うことはない謎の技術と思われがちなので、「普通に可愛い子なんですよ」って説明する。cm (colormap) — Matplotlib 3.0.2 documentationスポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); cmとは何か とり…

【python】複数のin演算子を一つにまとめる方法

はじめに こういう状況を考える。 >>> s = "hoge! fuga! piyo!" >>> if "hoge" in s and "fuga" in s and "piyo" in s: ... print("fizz!") ... fizz! 文字列の中に部分文字列が含まれているかを判定する、という状況で、ただ判定したい条件が複数ある。 壮…

【python】numpyで乱数のseedを設定する方法

「seed(種)」とか「random state」とか呼ばれる奴の設定方法。これを設定することで、乱数の処理に再現性を与えることができる。 方法 np.random.seed()を呼ぶと、とりあえずseedが引数でリセットされる。https://docs.scipy.org/doc/numpy/reference/gene…

【python】operator.itemgetterを使うべきか否か問題

はじめに この記事を開いた人の大半は「itemgetter? なにそれ」という反応でしょう。 (いや、検索で来た人はそうでもないかもしれないけど) itemgetterは以下のように使えるものです。 >>> lst = list(zip([1,3,5,6,7,1,4], [3,4,1,0,8,5,2])) # 特に値に…

【python】np.matrixの速度を測る

numpyで行列演算を行う方法としては、普通のnumpy配列に行列演算系の関数を適用していく方法と、あまり知られていないがnp.matrix型やnp.mat型を使う方法がある。 速度が違ったりするのだろうか? 仮に違うと困る(というか場面によって適切な方を選ぶ必要が…

【python】numpy.meshgridの基本的な使い方まとめ

はじめに numpyのmeshgridの使い方があまり理解できなくて、なんとなくコピペで動かしていたので、どのようなものなのかまとめておくことにしました。 目次 はじめに とりあえずmeshgridを作ってみる 計算する plotしてみる xyz座標の配列に変換する 逆にxyz…

【python】sklearnのclass_weightの挙動

はじめに 先に断っておくと、class_weightの挙動はモデルによって異なる可能性が十分ある。今回はsklearn.svm.SVCとsklearn.ensemble.RandomForestClassifierのドキュメントを参照して、一応基本的に共通する部分を抜き出した。 class_weightを調整する必要…

【python】sklearnで「何もしない」モデルがほしい

sklearnで「何もしない」モデルがあると、チョー便利。個人的にはそう思う。 どうやって使うかというと、具体的には以前の記事で書いたFeatureUnionと組み合わせて使う。 参考(以前の記事):【python】複数の特徴をまとめるFeatureUnion - 静かなる名辞 た…

【python】複数の特徴をまとめるFeatureUnion

単一の入力データから、複数の処理方法で幾つもの異なる特徴量が得られる・・・というシチュエーションがある。 この場合、「どれが最善か」という観点でどれか一つを選ぶこともできるけど、そうすると他の特徴量の情報は捨ててしまうことになる。総合的な性…

有意水準5%の論文が100本あったら

この記事は思いついたままに書いたポエム。 有意水準5%とは、その判断(主張)の妥当性が95%である、ということを意味する。 よって、有意水準5%で検定したら、100回に5回は第1種の過誤を犯す。 有意水準5%の論文が100本あったら、(いちおうすべての論文が…

【python】1つおきにリスト・文字列などから抽出する

スライスの基本的な話なんだけど、意外と知らない人が多いと思うので。 スライスで1つおきに取り出すには、こうする。 >>> "hogehoge~"[::2] 'hghg~' スライスで指定できるのはstart, stop, stepであり、上のように指定するとstart, stopはNoneでstepが2にな…

【python】sliceのちょっと深イイ(かもしれない)話

リスト(じゃなくてもだけど)に次のようにアクセスするとき、内部的には__getitem__が呼ばれていることは、歴戦のpythonistaの皆さんには常識でしょう。 >>> lst = [1,2,3,4,5] >>> lst[0] 1 この様子を自作クラスで観察してみましょう。 >>> class Hoge: .…

複数の目的変数で回帰を行う方法

はじめに 回帰分析を行う際、複数の目的変数に対して回帰をしたい場合があります。普通のモデルではできないのでちょっと面食らいますが、やり方は色々あるようです。 目次 はじめに 目的変数の数だけ回帰モデルを作る方法 複数の目的変数に対応したモデルを…

【python】リストの各要素に違う処理をする

問題設定 想定しているのは、たとえばこんなシチュエーションです。 s = "hoge! 1234" tmp = s.split() lst = [tmp[0], int(tmp[1])] 要するに、比較的短いリストだが性質の違うものが入っており、それぞれ違う処理をして返したいのです。 それだけなら良い…

【python】calendarモジュールの使い方

calendarモジュールは標準ライブラリに入っていて、曜日や日付の計算にはけっこう便利なモジュールらしいです。 でもあまり周知されていないので、使い方を(自分用に)メモっておきます。 ドキュメントはここです。 8.2. calendar — 一般的なカレンダーに関…

【python】pandasでデータを標準得点(z得点)に変換

データの正規化(標準化)をpandasでもやってみる。 正規化、標準化とは、データを分散1、平均0に変換する操作である。スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); 自分で書いてもできるが、scipyの関数を使うと簡単にできる。 >>…

【python】pandasでDataFrameの平均と標準偏差を計算する方法

概要 DataFrameから平均と標準偏差を計算する方法をメモしておきます。 目次 概要 列の平均と標準偏差を計算したい 行の平均と標準偏差を計算したい 特定の列・行だけ取り出してから計算する describeメソッドで全体の雰囲気を掴む 列の平均と標準偏差を計算…

【python】辞書で同じキーに複数の値を登録する

ちょっとしたTips。 辞書(dict)は通常、一つのキーには一つの値しか登録できない。代入しても上書きされる。 >>> d = {} >>> d["hoge"] = 1 >>> d {'hoge': 1} >>> d["hoge"] = 2 >>> d {'hoge': 2} こういうときどうすれば良いのかというと、値をリスト等…

【python】# coding: utf-8はもうやめる

pythonのプログラムは先頭行(あるいはシェバンの次の二行目)でファイルの文字コードを指定することができます。エンコーディング宣言といいます。 こんなのとか # coding: UTF-8 こういうのもありますね。これはemacsに自動認識させるための書式らしい*1。…