Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
a = np.arange(n).reshape(4, -1); a # 5列の行列 array([[ 0, 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, 44, 45, 46, 47, 48, 49], [50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74], [75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
はじめに 本記事はPython2.7, numpy 1.11, scipy 0.17, scikit-learn 0.18, matplotlib 1.5, seaborn 0.7, pandas 0.17を使用しています. jupyter notebook上で動作確認済みです.(%matplotlib inlineは適当に修正してください) SklearnのManifold learningの記事を参考にしています. 多様体学習と言われる手法について,sklearnのdigitsサンプルを用いて説明します. 特にt-SNEはKaggleなどでもたまに使用されている,多次元データの可視化に適した手法です. また可視化だけでなく,元のデータと圧縮されたデータを結合することで,単純な分類問題の精度を向上することができます. 目次 データの生成 線形要素に注目した次元削減 Random Proj
目的 Fortran 90で出力したバイナリファイル等をPythonで読み込み解析。 開発で参考になったリンクや注意などをメモ。 書いている人 普段はFortran 90とIDL(Interactive Data Language)。 Pythonはあまり慣れていない。 ライセンスが必要なIDLの代わりにPythonに移行中。 個人的な開発方針 pylabはGoogle検索で引っかかりにくい。直接numpyやmatplotlibをインポートする。 from [package] import *は極力やらない。 サーバ上でも使いたいので、基本的にコンソール上で利用。 環境 Python 3.6.0 |Anacoda 4.3.0 on OS X El Capitan Python全般 命名規則 PEP8に従う。 [Pythonコーディング規約]PEP8を読み解く 変数名・関数名がsnake_c
import numpy as np import pandas as pd def randomwalk(periods=None, start=None, end=None, freq='B', tz=None, normalize=False, name=None, closed=None, tick=1, **kwargs): """Returns random up/down pandas Series. Usage: ``` import datetime randomwalk(100) # Returns +-1up/down 100days from now. randomwalk(100, freq='H') # Returns +-1up/down 100hours from now. randomwalk(100, ,tick=0.1 freq='S') # Retu
科学技術計算用言語としての Python そもそもなぜデータ分析などの科学技術計算を Python でやるのでしょうか。主に次の二点によります。 NumPy, pandas, matplotlib など豊富なライブラリが揃っている 汎用性の高いグルー言語として利用できる データフレームを利用した計算とそのグラフ描画 (プロッティング) のみであれば R のほうがどちらかといえば簡単かもしれません。しかし統計解析を汎用性の高い Python で完結させることで様々な分野へのより幅広い応用が可能になります。 NumPy 統計解析の多くはベクトル演算を伴います。 NumPy は高速でメモリ効率の良い多次元配列の実装である ndarray を備えています。プログラミング言語に元から備わっている配列・ハッシュオブジェクトでは到底かなわないような高次元のベクトル演算を可能にします。またファンシーインデ
matplotlib と pandas によるさまざまな図の描画方法を以前に紹介しました。しかしその具体的なパラメーターについては触れませんでした。今回から数回に渡り matplotlib による図形描画について追っていこうと思います。 図とサブプロット matplotlib の Figure オブジェクトはプロット機能を提供します。 plt.figure() メソッドは何も描画されていない新しいウィンドウを描画します。 add_subplot() メソッドはその内部にサブプロットを生成します。 import numpy as np from pandas import * from pylab import * import matplotlib.pyplot as plt from matplotlib import font_manager from numpy.random imp
前回までに引き続き matplotlib と pandas によるデータ可視化について話を進めていきます。 外部データを可視化する 今回はより実践的なデータとして外部のデータを利用しましょう。この記事の参考にもしている pydata-book のデータをまずダウンロードしてきます。 pydata-book/ch08/tips.csv https://github.com/pydata/pydata-book/blob/master/ch08/tips.csv import numpy as np from pandas import * import matplotlib.pyplot as plt tips = read_csv('tips.csv') # CSV データのクロス集計をおこなう party_counts = crosstab(tips.day, tips.size) pr
import numpy as np from pandas import * import matplotlib.pyplot as plt # CSV データを読み込む macro = read_csv('macrodata.csv') # いくつかの列をピックアップする data = macro[['cpi', 'm1', 'tbilrate', 'unemp']] # .diff() メソッドは値をひとつ前の行からの差分に変更する # 先頭が NaN になるので .dropna() メソッドで取り除く trans_data = np.log(data).diff().dropna() # trans_data は前行からの変化を示すデータセットになる # 最後の 5 行を表示 print( trans_data[-5:] ) # => # cpi m1 tbilrate unemp
モバイルアプリケーションの運営に欠かせない指標の1つであるユーザーリテンション、PartyTrack等の分析サービスを使っていると良く目にすると思う。ただ、自分の持っているデータでグラフを描画したいがWebフロントのJavaScriptは書きたくないというケースもある。 そんな時に見た次のエントリ Making Pinterest — How Pinterest drives sustainable growth http://engineering.pinterest.com/post/86533331849/how-pinterest-drives-sustainable-growth コホートヒートマップが何かで描画されてる!! という訳で同じ見た目のグラフをPythonで描画してみる。 リテンション率のデータ 「ある日xに獲得したユーザーのy日後のアクティブ率z」を次の形で持ってい
Python と matploblib によるデータ可視化についてはすでに pandas + matplotlib による多彩なデータプロッティングや pandas を利用してデータセットの可視化を素早く試行する、 matplotlib (+ pandas) によるデータ可視化の方法などでさまざまな方法を説明してきました。 今回はヒートマップを描くわけですが、その前にあらためで可視化の方法についておさらいしましょう。 配列からのデータ可視化方法のまとめ ここでのデータ可視化とは配列からなるポピュラーな図示をさしています。配列とは、複数の属性値を持ち、 1 つのデータが 1 つの行で表されるデータの形式です。 いろいろなバリエーションがありますが、主軸となる代表的な可視化方法をまとめます。 棒グラフ (bar) データの大きさの比較に適したグラフです。縦や横に描画する方法、積み上げる方法、複
matplotlib.animation.ArtistAnimation() メソッドを使って、plt.plot() や plt.bar() で出力した個々のグラフを、自動連続再生する動画アニメーションを作ってみた。 アニメーションは何かの変化を表現できるということで、今回は、正規分布 と ポアソン分布 のパラメータを離散的に推移させて、グラフの概形がどのように移り変わるかを 可視化 してみた。 統計教育のツールとして、使えるかも??? (参考ウェブサイト) 「pythonで散布図アニメーションを試してみた」 「matplotlibでランダムウォークをアニメーション」 「Python:matplotlibでScatterを使った2Dアニメーション」 「numpy+matplotlibで正規分布」 memoring 「統計解析」 「Pythonで正規分布に従う乱数を生成する。」 yubais
Rではheatmap(x)と打つだけで、x, y各軸に対してクラスタリングされたデンドログラム付きヒートマップが描画でき、遺伝子の発現量が・・・など日々呟いているbioinformaticiansにはお馴染みの機能なのですが、Python+matplotlib環境で同じことをやろうとした際、あまり情報が無かったので、試行錯誤してみました。 備忘録ついでに公開しときます。 データの準備 まずは、適当なデータとして、細胞組織ごとの遺伝子発現量の増減を表したようなデータを作ります。 ここでの組織のチョイスも、遺伝子のチョイスも、全て適当です。 後でクラスタリングしたときにそれっぽく見えるように、乱数で生成したデータを若干小細工してpandas.DataFrameオブジェクトにします。 # !/usr/bin/env python3 genes = [ 'HIST1H4H', 'SPRN', 'D
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く