統計ワークベンチとしてのPython


355

多くの人々が、Excelや別のスプレッドシート、SPSS、Stata、Rなどのメインツールを統計のニーズに使用しています。非常に特別なニーズのために特定のパッケージを使用する場合がありますが、単純なスプレッドシートまたは一般的な統計パッケージまたは統計プログラミング環境で多くのことができます。

私は常にプログラミング言語としてPythonが好きで、単純なニーズのために、必要なものを計算する短いプログラムを書くのは簡単です。Matplotlibでプロットできます。

RからPythonに完全に切り替えた人はいますか?R(または他の統計パッケージ)には統計に固有の多くの機能があり、実行したい統計について考えることができるデータ構造があり、データの内部表現についてはあまりありません。Python(またはその他の動的言語)には、馴染みのある高レベル言語でプログラミングできるという利点があります。また、データが存在する、またはそこから測定を行うことができる実際のシステムとプログラムでやり取りすることができます。しかし、単純な記述統計からより複雑な多変量法まで、「統計用語」で物事を表現できるPythonパッケージは見つかりませんでした。

Pythonを「統計ワークベンチ」として使用して、R、SPSSなどを置き換える場合、何を推奨できますか?

あなたの経験に基づいて、私は何を獲得し、失いますか?


5
FYI、オフ起こっている新しいPythonの統計subredditがあります:reddit.com/r/pystats
naught101

コマンドライン上で物事を移動する必要がある場合、pythonpy(github.com/Russell91/pythonpy)は素晴らしいツールです。
ラッセルスチュワート

回答:


307

R / CRANで利用可能な豊富な統計パッケージを無視することは困難です。とは言うものの、私はPythonの土地で多くの時間を費やしており、誰も私と同じくらい楽しいことを思いとどまらせません。:)統計作業に役立つと思われるライブラリ/リンクを次に示します。

  • NumPy / Scipyこれらについてはおそらくすでにご存知でしょう。しかし、すでに利用可能な多くの統計機能について読むことができるクックブックと、関数(データ操作やその他の操作を含む)の優れたリファレンスであるサンプルリストを指摘しましょう。もう1つの便利なリファレンスは、John CookのScipyディストリビューションです。

  • パンダこれは、統計データ(表形式データ、時系列、パネルデータ)を操作するための本当に素晴らしいライブラリです。データの要約、グループ化/集計、ピボットのための多くの組み込み関数が含まれています。統計/計量経済学ライブラリもあります。

  • NumPyでうまく機能するラリーラベル付きアレイ。NumPyには存在せず、データ操作に適した統計関数を提供します。

  • python-statlib多数の散在する統計ライブラリを組み合わせた、ごく最近の取り組み。NumPyやPandaを使用していない場合、基本的な統計情報に役立ちます。

  • statsmodels統計モデリング:とりわけ線形モデル、GLM。

  • scikits 統計的および科学的コンピューティングパッケージ-特に平滑化、最適化、機械学習。

  • PyMCベイジアン/ MCMC /階層モデリングのニーズに対応。強くお勧めします。

  • PyMix混合モデル。

  • Biopython生物データをpythonにロードするのに便利で、分析のための基本的な統計/機械学習ツールを提供します。

速度が問題になる場合は、Theanoを検討してください。ディープラーニングの人々が大成功で使用しています。

そこには他にもたくさんのものがありますが、これはあなたが言及した線に沿って最も有用だと思うものです。


16
すべての回答は有用かつ有用であり、すべて受け入れられるに値します。しかし、これは質問に答える上で非常に良い仕事をします:Pythonでは、あなたがやりたいことをするためにたくさんのピースをまとめる必要があります。これらのポインタは、統計/モデリング/などを行いたい人にとって非常に役立つことは間違いありません。Pythonで。みんなありがとう!
ファビアンファーガーホルム

1
@arsは、WindowsでPythonを使用する最良の方法を知っていますか?
ステファンローラン

1
@StéphaneLaurent私は通常、自分でさまざまなピースをインストールしますが、クイックスタート/インストールのために、pythonxyを検討するかもしれません。
アルス

このスクリプトは、上記の多くのライブラリをインストールします:fonnesbeck.github.com/ScipySuperpack
Fr.

Pythonxyは優れていますが、32ビットでしか使用できないため、大規模な計算を行う場合は迷惑になる可能性があります。以下は、多くのpythonパッケージをインストールするための非公式のバイナリです。あなたが窓の下で働くことに決めた場合、彼らは非常に便利です。lfd.uci.edu/~gohlke/pythonlibs @StéphaneLaurent–
JEquihua

140

数値プラットフォームおよびMATLABの代替として、Pythonは少なくとも2〜3年前に成熟に達し、現在では多くの点でMATLABよりもはるかに優れています。私はその頃にRからPythonに切り替えようとしましたが、惨めに失敗しました。私が日常的に使用しているRパッケージには、Pythonに相当するものがないものが多すぎます。ggplot2が存在しなくても十分に注目を集めることができますが、他にもたくさんあります。これに加えて、Rにはデータ分析のための優れた構文があります。次の基本的な例を考えてみましょう。

Pythonの

results = sm.OLS(y, X).fit()

R

results <- lm(y ~ x1 + x2 + x3, data=A)

もっと表現力豊かだと思うものは何ですか?Rでは、変数の観点から考えることができ、モデルを簡単に拡張して、たとえば

lm(y ~ x1 + x2 + x3 + x2:x3, data=A)

Rと比較して、Pythonはモデル作成用の低レベル言語です。

高度な統計関数の要件が少なく、既に大規模なプロジェクトでPythonをコーディングしている場合、Pythonを有力な候補と見なします。速度制限のため、またはRパッケージがエッジを提供しないために、ベアボーンアプローチが必要な場合にも検討します。

現在、比較的高度な統計を実行している人にとって、答えは簡単であり、いいえです。実際、Pythonはデータ分析についての考え方を制限すると信じています。100の重要なRパッケージのモジュール交換を作成するには、数年と多くの人年の努力が必要であり、それでもPythonはデータ分析機能が強化された言語のように感じるでしょう。Rはすでにいくつかの分野で適用統計学者の最大の相対的なシェアを獲得しているため、これはすぐには起こりません。そうは言っても、それは自由な国であり、APLとCで統計を行う人々を知っています。


9
+1数式などを使用してデータを操作するための統計的言語としてRを重視しているため、この応答が好きです。そうは言っても、Pythonコミュニティでのパンダ(statsmodelと組み合わせた)の大きなプラスの影響を期待しています。
chl

28
Pythonコミュニティでは、パッツィは時間がRが提供するものに向上させることで、あなたが記述され、「式」の必要性に対処しますpatsy.readthedocs.org/en/v0.1.0/index.html何Pythonでうれしいですが、これらすべてのことですアスペクトは直交して処理されます。パンダは時系列とデータフレーム/シリーズの表現を処理します。フォーミュラのためのパシー。配列表現とベクトル化のためのnumpy。statsmodelsは統計アルゴリズムをラップします。最適化のためのscipyと他の多くのもの。その結果、インターフェイスがよりきれいになりました。それに比べて、Rはより成熟していますが、毛玉です。../ ..
ブレ

3
../ ..長い目で見れば、力はより多くのPython統合の方向に向かっていくと思います。それは、Rに対するかなりの競争相手になるでしょう。それは決して仕事の些細な部分ではありません。- blais
CHL

9
更新として:statsmodelsドキュメントの最初の例はになりましたresults = smf.ols('Lottery ~ Literacy + np.log(Pop1831)', data=dat).fit()。Statsmodelsは、カバレッジの点でRのような他の統計パッケージよりもはるかに遅れていますが、別の言語または統計パッケージを取得する前に、Pythonでできることは増えています。(GEEとMixedは次のリリースに含まれます。)
ジョセフ14

4
「Pythonの良い点は、これらすべての側面が直交して処理されることです...」多くの点で意見が一致しません。numpy、scipy、statsmodelsの間には大きな重複があります。Rの設計は、はるかにモジュール式で経済的です。さらに、ほとんどのデータ指向言語の概念的な革新のすべてではありません(式だけでなく、データフレーム、グラフィックの文法、メデルの文法としてのキャレット、knitr、およびまだ開発中のdplyrのデータの文法) Pythonコミュニティは常に一歩遅れており、パフォーマンスに重点を置いているようです。
ギャップのある14

95

まず、John D Cookの答えに同意します。PythonはRのようなドメイン固有の言語ではありません。したがって、今後さらに多くのことができるようになります。もちろん、RがDSLであるということは、JASAで公開されている最新のアルゴリズムがほぼ確実にRにあることを意味します。より多くの実稼働分析作業を行い、既存のソフトウェアおよび環境と統合し、速度、拡張性、および保守性を懸念している場合、Pythonの方がはるかに役立ちます。

第二に、arsは良いリンクで素晴らしい答えを出しました。以下に、Pythonでの分析作業に不可欠と思われるパッケージをいくつか示します。

  • 美しい、出版品質のグラフィック用のmatplotlib
  • 強化されたインタラクティブなPythonコンソール用のIPython。重要なのは、IPythonがPythonのインタラクティブな並列コンピューティングのための強力なフレームワークを提供することです。
  • PythonでC拡張機能を簡単に作成するためのCython。このパッケージを使用すると、計算負荷の高いPythonコードのチャンクを取得して、簡単にC拡張に変換できます。その後、他のPythonモジュールと同様にC拡張機能をロードできますが、コードはCにあるため非常に高速に実行されます。
  • PyIMSL Studioは、完全に文書化されサポートされている数百の数学および統計アルゴリズムのコレクションです。PythonとCからまったく同じアルゴリズムをほぼ同じAPIで呼び出すことができ、同じ結果が得られます。完全な開示:私はこの製品に取り組んでいますが、私も多く使用しています。
  • Excelファイルを簡単に読み込むためのxlrd

MATLABに似たインタラクティブなIDE /コンソールが必要な場合は、SpyderまたはEclipseのPyDevプラグインを確認してください。


15
Rは通常の意味でのDSLではありません。これは、完全なチューリング完全なプログラミング言語です。
ハドリー

4
@hadley:おそらく口語的に「DSL」を使用しているのかもしれませんが、DSLのウィキペディアのページでは、DSLの例としてS +とRを、汎用言語としてPythonを明示的にリストしています。en.wikipedia.org/wiki/Domain-specific_languageを参照してください。同じように、SASはチューリング完全です(IMLマクロコンポーネントが使用されている場合のみ)が、実用的な意味で完全な言語と呼ぶことはほとんどありません。私は仕事でRが非常に貴重であると感じていますが、R(またはその点でExcel)ですべてを実行するのではなく、できるだけ汎用言語を使用してコーディングしようとします。
ジョシュヘマン

16
ウィキペディアの他の言語と同じリストにRとSを含めるのは不公平だと思います-PythonでできることをRでできないことは何もありません。もちろん、他のプログラミング言語に適したものはたくさんありますが、Pythonにも同じことが言えます。
ハドリー

6
ああ、ハドリーは2011年10月13日、コメントを交換した同日、ウィキペディアのページからRとS +を削除しました。どうやら、今では...あまりにも、汎用言語である
ジョシュHemann

5
Rでマルチスレッドコードを使用できますか?ネットワーク非同期I / O?私を信じて、これらのユースケースは実際に科学計算で発生します。私の意見では、RはDSLです。それは統計が得意で、他のほとんどのものが得意ではありません。
ガエルバロクオー14

61

cranBioconductorの統計パッケージの範囲が他の言語から提供されているものをはるかに超えるという議論はないと思いますが、それだけが考慮されるものではありません。

私の研究では、可能なときにRを使用しますが、Rが遅すぎる場合があります。たとえば、大規模なMCMCの実行。

最近、私はこの問題に取り組むためにpythonとCを組み合わせました。簡単な要約:MCMCを使用して、最大60のパラメーターで大規模な確率的母集団モデルを近似し、約150の潜在状態を推測します。

  1. Pythonでデータを読み込む
  2. ctypesを使用して、PythonでCデータ構造を構築します。
  3. Python forループを使用して、パラメーターを更新し、尤度を計算したC関数を呼び出します。

簡単な計算により、プログラムはC関数で95%を費やしていることがわかりました。ただし、データを読み込んだり、Cデータ構造を構築したりするのに苦痛なCコードを書く必要はありませんでした。


pythonがR関数を呼び出すことができるrpyもあります。これは便利な場合がありますが、統計を「ただ」行う場合は、Rを使用します。


29
Rcpp

PyMCを試してみて、モデルのパフォーマンスが(python / Cと比較して)比較されるかどうかを知りたいです。
アルス

@ars:上記の場合、(10 ^ 8回の反復の)各反復には5つのODEの解法が含まれていました。これは本当にCで行わなければなりませんでした。残りのコードはかなり単純だったので、Cコードは簡単でした。私のアプリケーションは非標準だったため、PyMCは適用できませんでした-また、2年前でした。
csgillespie

40

次のStackOverflowの議論は役に立つかもしれません


これらの議論はすべて削除されました:-(。おそらくこの答えも削除されるべきでしょうか?
ジョナサン

12
それは悲しいです。ウェイバックマシンのコピーを参照するようにリンクを更新しました。
ジェロミーアングリム2013年

36

上記の回答で明示的に言及されたscikit-learnを見たことはありません。Pythonの機械学習用のPythonパッケージです。それはかなり若いですが、非常に急速に成長しています(免責事項:私はscikit-learn開発者です)。目標は、速度と使いやすさに重点を置いた、統一されたインターフェイスで標準の機械学習アルゴリズムツールを提供することです。私の知る限り、Matlabで類似するものは見つかりません。長所は次のとおりです。

  • 詳細な文書で、多くの例

  • 高品質の標準的な教師あり学習(回帰/分類)ツール。具体的には:

  • 複数のCPUを使用した相互検証によるモデル選択を実行する機能

  • データを探索したり、最初の次元削減を行う教師なし学習。教師あり学習に簡単に連鎖できます。

  • オープンソース、BSDライセンス。あなたが純粋に学術的な環境にいない場合(私は州の国立研究所になるでしょう)、Matlabのコストは非常に高く、仕事から製品を引き出すことを考えているかもしれませんので、これは非常に重要です。

Matlabは素晴らしいツールですが、私自身の仕事では、scipy + scikit-learnはMatlabの優位性を与え始めていますscikit-learnを使用すると、さまざまなアプローチを非常に簡単に比較できます。


29

Pythonに移行する利点の1つは、1つの言語でより多くの作業を行えることです。Pythonは、数値計算、Webサイトの作成、管理スクリプトなどに適した選択肢です。したがって、Pythonで統計を行う場合、他のプログラミングタスクを実行するために言語を切り替える必要はありません。

更新:2011年1月26日、Microsoft Researchは、データ分析のための新しいPythonベースの環境であるShoを発表しました。まだ試してみる機会はありませんが、Pythonを実行し、.NETライブラリとやり取りしたい場合は興味深い可能性があります。


4
私はRで多くの数の計算を行い、1つのWebサイトといくつかの管理スクリプトを実行しましたが、それらは非常にうまく機能しています。

28

おそらくこの答えはごまかしですが、RとPythonの間のインターフェースを提供するrpyプロジェクトについて誰も言及していないのは奇妙に思えます。構文、データ処理、そして場合によってはPythonの速度を維持しながら、Rのほとんどの機能に対するpythonic apiを取得します。Rがdslであり、統計コミュニティが他のどの言語よりもRに多く投資しているという理由だけで、PythonがRと同数の最先端の統計ツールを持つことはありそうにありません。

これは、PythonをPythonに、SQLをSQLにしながら、SQLの利点を活用するためにORMを使用することに似ています。

データ構造専用のその他の便利なパッケージには次のものがあります。

  • pydataframeはdata.frameを複製し、rpyで使用できます。Rに似たフィルタリングと操作を使用できます。
  • pyTables下にある高速hdf5データ型を使用します。
  • h5pyまたhdf5ですが、特にnumpyとの相互運用を目的としています
  • パンダ RPY、pyTablesとnumpyのと連携し、data.frameなどのデータを管理し、別のプロジェクトを

1
私はいつも、rpy sloppyを使って作業することを発見しました。たとえば、いくつかの簡単な機能を備えた大きなコード行を必要とします。
ネストール

おそらく、IPythonのrmagic拡張機能(@CarlSmithが指摘したように)がrpy2での作業を容易にしますか?ipython.org/ipython-doc/dev/config/extensions/rmagic.htmlを参照してください。
ジョナサン

26

私は本質的にRショップと呼ばれる生物統計学者です(80人までの人々がRを主要なツールとして使用しています)。それでも、私はPythonでの作業の約3/4を費やしています。これは、私の仕事が統計モデリングへのベイジアンおよび機械学習のアプローチを含むという事実に主に起因します。Pythonは、少なくとも反復ベースまたはシミュレーションベースの統計的手法の場合、Rよりもパフォーマンス/生産性のスイートスポットにはるかに近くなります。ANOVAS、回帰および統計テストを実行している場合、主にRを使用するはずです。ただし、必要なもののほとんどは、Rのパッケージとして入手できません。


5
統計のどの領域で作業しているかを区別するための+1。Pythonには多くの機能が存在する統計計算(非構造化テキスト分析やコンピュータービジョンなど)の領域があり、Pythonはこれらのサブドメインの共通語です。Pythonコミュニティが追いつく必要があるのは、Rの設計が得意とする古典的な統計モデリングに関するデータ構造とセマンティクスを改善することだと思います。scikits.statsmodels開発者は、その前面の進展をたくさん作っている:scikits.appspot.com/statsmodels
ジョシュHemann

26

私は、統計作業のために線形モデルに大きく依存し、私の仕事の他の側面のためにPythonを愛している人の観点から、かなり基本的な統計以外のことを行うためのプラットフォームとしてPythonに非常に失望していると言いたいと思います。

Rは統計コミュニティからのより良いサポート、線形モデルのより良い実装、そしてEnthoughtのような優れた分布であっても、物事の統計面から率直に言って、PythonはWild Westに少し似ていると感じます。

ソロで作業しているのでない限り、この時点で、統計にPythonを使用する協力者がいる可能性はかなり低いです。


26

とにかく、PythonのRをあきらめる必要はありません。IPythonをフルスタックで使用する場合、R、Octave、およびCythonの拡張機能があるため、IPythonノートブック内でこれらの言語を簡単かつきれいに使用できます。また、それらとPython名前空間の間で値を渡すこともサポートしています。matplotlibを使用して、適切にレンダリングされた数式として、データをプロットとして出力できます。他にも多くの機能がありますが、これらはすべてブラウザで実行できます。

IPythonは長い道のりを歩んできました:)


19

探しているものはSageと呼ばれますhttp : //www.sagemath.org/

数学用のPythonツールの優れた組み合わせへの優れたオンラインインターフェイスです。


4
Sageのすばらしい点は、基本的に数学、統計、データ分析などのための多くの優れた無料ツールの統合であるということですこれは単なるPythonだけではありません。R、maxima、GLPK、GSLなどにアクセスできます。
みすぼらしいシェフ

18

Rpy2-RでPythonのままで遊ぶ...

Gungのリクエストごとのさらなる詳細:

Rpy2のドキュメントは、http: //rpy.sourceforge.net/rpy2/doc-dev/html/introduction.htmlにあります

ドキュメントから、 rpy2の高レベルインターフェイスは、PythonプログラマーによるRの使用を容易にするように設計されています。Rオブジェクトは、Pythonで実装されたクラスのインスタンスとして公開され、多くの場合、R関数はそれらのオブジェクトへのバインドメソッドとして使用されます。このセクションには、Rを使用したグラフィックスの紹介も含まれています:トレリス(格子)プロットとggplot2に実装されているグラフィックスの文法により、コードをほとんど記述せずに複雑で有益なプロットを作成できます。

好きな理由:

pythonの柔軟性を使用してデータを処理し、numpyまたはpandasを使用して行列に変換し、Rで計算を実行し、rオブジェクトを取得して後処理を実行できます。私は計量経済学を使用しており、PythonにはRの最先端の統計ツールがありません。RはPythonほど柔軟ではないでしょう。これにはRを理解する必要があります。幸いなことに、素晴らしい開発者コミュニティがあります。

Rpy2自体は十分にサポートされており、Rpy2をサポートしている紳士はSOフォーラムに頻繁に参加しています。Windowsのインストールには少し苦痛があるかもしれません-https ://stackoverflow.com/questions/5068760/bizzarre-issue-trying-to-make-rpy2-2-1-9-work-with-r-2-12-1-using -python-2-6-un?rq = 1が役立つ場合があります。


1
サイト@pythOnometristへようこそ。これは有益な貢献だと思います。Rpy2の簡単な要約を提供して、読者が探しているものかどうかを判断してもらえますか?
GUNG

17

統計分析と予測にPythonを使用しています。上記の他の人が述べたように、NumpyとMatplotlibは優れた働き者です。ReportLabを使用してPDF出力を生成します。

現在、PythonベースのExcelのようなスプレッドシートアプリケーションであるResolverとPyspreadの両方を検討しています。Resolverは商用製品ですが、Pyspreadはまだオープンソースです。(おAび申し上げますが、リンクは1つのみに制限されています)


1
再びいくつかの興味深いツール。Numpy、Matplotlib、ReportLabについては知っていましたが、Pyspreadは興味深いアイデアのようです。少なくとも、スプレッドシートのセルにPython式を入力したいと思います。考えられるすべての問題を解決するわけではありませんが、プロトタイピングやデータの操作には適しています。
ファビアンファーガーホルム

1
+1すごいpythonスプレッドシート!まだ聞いていませんでした。OpenOffice / LibreOfficeが彼らのスプレッドシートソフトウェアにpythonスクリプトを本当に取り入れて統合することを常に望んでいた
ユーザー

15

これまでの素晴らしい概要。私は大学で3年間働いて以来、matlabの代替としてpython(特にscipy + matplotlib)を使用しています。特定のライブラリに精通しているため、時々戻ってきます。たとえば、matlabウェーブレットパッケージは純粋に素晴らしいです。

http://enthought.com/ pythonディストリビューションが好きです。商用ですが、アカデミックな目的では無料で、私の知る限り、完全にオープンソースです。私は多くの学生と仕事をしているため、enthoughtを使用する前に、numpy、scipy、ipythonなどをインストールするのが面倒な場合がありました。Enthoughtは、Windows、Linux、およびMac用のインストーラを提供します。

言及する価値のある他の2つのパッケージ:

  1. ipython(すでに考え抜かれている)素晴らしい高度なシェル。良い紹介はshowmedoにありますhttp://showmedo.com/videotutorials/series?name=PythonIPythonSeries

  2. nltk-自然言語ツールキットhttp://www.nltk.org/あらゆるコーパスで統計/機械学習を行いたい場合に最適なパッケージ。


12

これは興味深い質問であり、いくつかの素晴らしい答えがあります。

Roseline Bilinaと一緒に書いた論文で、いくつかの有用な議論を見つけるかもしれません。最終版はこちらです:http : //www.enac.fr/recherche/leea/Steve%20Lawford/papers/python_paper_revised.pdf "、Econometric Reviews(2012)、31(5)、558-591)。


10

おそらく直接関係ないかもしれませんが、Rには対話型セッション用の優れたGUI環境があります(編集:Mac / Windows上)。IPythonは非常に優れていますが、Matlabに近い環境では、SpyderまたはIEPを試すことができます。IEPを使用するのは遅かったのですが、Spyderはより有望に見えます。

IEP:http : //code.google.com/p/iep/

スパイダー:http : //packages.python.org/spyder/

また、IEPサイトには、関連ソフトウェアの簡単な比較が含まれています:http : //code.google.com/p/iep/wiki/Alternatives


9

ここでパンダの素晴らしい紹介を見つけたので、チェックアウトすることをお勧めします。Pandasは素晴らしいツールセットであり、Rの高レベルのデータ分析機能と、Pythonの豊富なライブラリと製品品質を提供します。

このブログ投稿は、完全な初心者の観点からのパンダの素晴らしい紹介です。

http://manishamde.github.com/blog/2013/03/07/pandas-and-python-top-10/


3
読者がそれを見ることが自分に適しているかどうかを事前に判断できるように、品質が「素晴らしい」とするものについて、いくつかの言葉を書いていただけますか?
whuber

1
ごめんなさい。元の投稿に間違ったリンクを添付したことに気付きました。
パダワン

8

IronPython上に構築された数値計算環境であるShoに一言コメントを追加する必要があります。私は今、スタンフォードの機械学習クラスでそれを使用していますが、本当に役に立ちました。線形代数パッケージとグラフ作成機能が組み込まれています。.Netであるため、C#やその他の.Net言語で簡単に拡張できます。私は、まっすぐなPythonやNumPyよりも、Windowsユーザーである方がはるかに簡単に始めることができました。


8

オレンジについては誰も言及していません。

ビジュアルプログラミングまたはPythonスクリプトによるデータマイニング。機械学習のコンポーネント。バイオインフォマティクスおよびテキストマイニングのアドオン。データ分析の機能が満載。

私は日常的に使用していませんが、コマンドラインインターフェイスよりもGUIを好む人にとっては必見です。

後者を好む場合でも、Orangeの機能の一部が必要になった場合に簡単にPythonスクリプトにOrangeの断片をインポートできるので、Orangeはよく知っているべきです。


7

SPSS Statisticsには統合されたPythonインターフェイス(Rもあります)があることに注意してください。したがって、Statisticsプロシージャを使用するPythonプログラムを作成し、通常の適切にフォーマットされたStatistics出力を生成するか、結果をプログラムに返してさらに処理することができます。または、StatisticsコマンドストリームでPythonプログラムを実行できます。統計コマンド言語をまだ知っている必要がありますが、統計だけでなく手順が提供するすべてのデータ管理、プレゼンテーション出力などを利用できます。


7

DataCampからの最近の比較は、RとPythonについて明確な図を提供します。

データ分析フィールドでのこれら2つの言語の使用。Pythonは、データ分析タスクをWebアプリと統合する必要がある場合、または統計コードを運用データベースに組み込む必要がある場合に一般的に使用されます。Rは主に、データ分析タスクが個々のサーバーでスタンドアロンのコンピューティングまたは分析を必要とする場合に使用されます。

このブログでとても便利だと思ったので、他の人たちがこれら両方の言語の最近の傾向を理解するのに役立つことを願っています。ジュリアもこの地域に来ています。お役に立てれば !


6

Pythonは私の分野で優れたワークベンチだと思います。私は多くのスクレイピング、データラングリング、大規模なデータ処理、ネットワーク分析、ベイジアンモデリング、およびシミュレーションを行っています。通常、これらすべてのことには速度と柔軟性が必要なので、これらの場合はPythonがRよりも優れていることがわかります。以下に、私が気に入っているPythonのいくつかの点を示します(上で言及したものとそうでないものがあります)。

-よりクリーンな構文。より読みやすいコード。Pythonは、より現代的で構文的に一貫した言語だと思います。

-Pythonには、ノートブック、Ipython、およびコード共有、コラボレーション、公開のためのその他のすばらしいツールがあります。

-iPythonのノートブックを使用すると、PythonコードでRを使用できるため、常にRに戻ることができます。

-Cに頼らずに大幅に高速化。Cython、NUMBA、およびその他のC統合方法を使用すると、コードが純粋なCに匹敵する速度になります。これは、Rで実現することはできません。

-パンダ、ナンピー、およびシシーが水から標準Rを吹き飛ばします。はい、Rが1行でできることはいくつかありますが、パンダ3または4が必要です。ただし、一般的に、パンダはより大きなデータセットを処理でき、使いやすく、他のPythonとの統合に関して驚くほどの柔軟性を提供しますパッケージとメソッド。

-Pythonはより安定しています。2gigデータセットをRStudioにロードしてみてください。

-上記のように思われないきちんとしたパッケージの1つはPyMC3です。これは、ほとんどのベイジアンモデリングに最適な汎用パッケージです。

-いくつか、上記でggplot2について言及し、Pythonからの欠落についてgrubについて。Matlabのグラフ機能を使用したり、Pythonでmatplotlibを使用したことがある場合、後者のオプションは通常ggplot2よりもはるかに優れていることがわかります。

ただし、おそらくRは習得が容易であり、モデリング手順にまだあまり慣れていない場合には頻繁に使用します。その場合、Rの既製の統計ライブラリの深さは無敵です。理想的には、必要に応じて使用できるように両方を十分に知っていると思います。


5

Windowsで作業しなければならない人にとって、Anaconda(https://store.continuum.io/cshop/anaconda/)は本当に役立ちます。Windowsでのパッケージのインストールは頭痛の種でした。Anacondaをインストールすると、ワンライナーですぐに使用できる開発環境をセットアップできます。

たとえば、

conda create -n stats_env python pip numpy scipy matplotlib pandas

これらのパッケージはすべて自動的に取得およびインストールされます。


5

Pythonは、Rと比較できるようになるまでに長い道のりがあります。Rよりもパッケージがかなり少なく、品質が低いです。基本にこだわる人やカスタムライブラリのみに依存する人は、おそらくPythonで独占的に仕事をすることができますが、より高度な定量的ソリューションが必要な場合は、Rに近づかないと思います。

また、これまでのところ、PythonにはR-Studioに匹敵する適切な科学的MatlabスタイルのIDEがなく(Spyderとは言わないでください)、コンソールですべてを実行する必要があることにも注意してください。一般的に言って、Python体験全体には、ほとんどの人が欠けていて気にしない、かなりの量の「ギーク」が必要です。

誤解しないでください、私はPythonが大好きです。これは、実際にはRとは異なり、実際のプログラミング言語である私のお気に入りの言語です。それでも、純粋なデータ分析に関しては、Rに依存しています。Rは、これまでで最も専門的で開発されたソリューションです。データ分析とソフトウェアエンジニアリングを組み合わせる必要がある場合、Pythonを使用します。たとえば、ダーティRスクリプトで最初にプログラミングしたメソッドの自動化を実行するツールを作成します。多くの場合、rpy2を使用してPythonからRを呼び出します。これは、ほとんどの場合、Rパッケージの方がはるかに優れているためです(またはPythonにはまったく存在しません)。このようにして、私は両方の長所を最大限に活用しようとします。

数学的なスタイルの構文と速度が大好きなので、純粋なアルゴリズム開発にMatlabを使用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.