Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Cythonの導入とPandasでapplyする方法の調査 概要 CythonはPythonに型指定を書き足すことでコンパイルできるようにして、実行速度を何倍にも速くできるような言語。Pythonユーザーであればそれほど困ることなく使え、且つ実行速度の問題を解決できる、大変ありがたい言語である。 個人的にPandas使っている時に、ちょっとPythonのコードをapplyで噛ませると処理速度が急に遅くなってしまう問題を、Cythonで関数を記述することで解決したいというモチベーションの元に手を出した。 今回は導入からapplyに渡す方法の検討までを行う。 @CretedDate 2016/03/19 @Versions python 3.4, pandas0.17.1, cython0.23.4 インストール pipでいける。 $ sudo pip install cython 簡易サンプ
class MFbpr(Recommender): ''' コンストラクタとか他の処理 ''' def buildModel(self): loss_pre = sys.float_info.max nonzeros = self.trainMatrix.nnz hr_prev = 0.0 sys.stderr.write("Run for BPR. \n") for itr in xrange(self.maxIter): start = time.time() # Each training epoch for s in xrange(nonzeros): # sample a user u = np.random.randint(self.userCount) itemList = self.trainMatrix.getrowview(u).rows[0] if len(itemL
12月、私は PuPPy(the Puget Sound Python users group)の会合でQ&A セッション を行いました。そこでようやくPython 3が誕生した理由と、string/bytesに関する全てを説明しました。Python 3が作られた理由をユーザはもう知っているはずだと思っていたので、私はこの説明で称賛を得たことに、ちょっと驚きました。後で考えてみると、Pythonに詳しい人もそうでない人も含めて大多数の人が、その理由を探すように言われたり、好奇心からその理由を探し当てられるなどと考えた私が愚かでした。ですから、このブログの記事で、Python 3が存在する理由をわかりやすく説明します。後方互換性の全くない unicode / str / bytes の仕様変更は、Python 3のコードの移植の中でも本当に難解な部分ですので、私たちがその仕様変更を選択した理
(訳注:2016/3/9、いただいたフィードバックを元に記事を修正いたしました。) 注意: この記事で書かれている機能は、大部分がPython 3.4で導入されたものです。ネイティブコルーチンとasync/await構文はPython 3.5でサポートされました。そのため、本記事に記載されているコードを試す場合はPython 3.5の利用をお勧めします。 ジェネレータは値を 生成する 関数です。普通、関数は return で値を返したあと、その下層のスコープは破棄します。関数を再度呼び出す場合、その関数はゼロから起動されることになります。つまり1回限りの実行となります。しかしジェネレータ関数は値を yield で返し、関数の実行を一時停止します。その後、関数を呼び出したスコープにコントロールが移ります。関数を再び呼び出して次の値を(存在すれば)得たい時は、実行を再開することができます。では
Python に Bオプションを付けるか、環境変数 PYTHONDONTWRITEBYTECODE を作ると .pycファイルが作成されなくなる。 具体的には python -B foo.py のように実行するか、 :: Windows cmd の場合 set PYTHONDONTWRITEBYTECODE=1 foo.py # Linux bash の場合 export PYTHONDONTWRITEBYTECODE=1 ./foo.py のように事前に環境変数を設定しておく。 そもそも .pyc ファイルとは? Python で書かれたモジュールを import すると自動的に .pycファイルが作成される。 例えば import bar とやると bar.py と同じディレクトリに bar.pyc というファイルができる。 このファイルは bar.py をコンパイルして得られたバイト
ふとPythonで利用可能なモジュールの一覧を取得したくなったのでメモ。 条件 ここでいう利用可能なモジュール および パッケージ一覧とは、以下のようなものとする。 ビルトインで組み込まれてるやつ site-packages にインストールされてるやつ virtualenvなどの仮想環境などにインストールされてるやつ というかパスが通ってて、モジュール、パッケージとして認識されるヤツ全て 確認したいのじゃなくてリストとかのデータとして扱いたい こんなん僕が求めてるのとちゃう 求めてるものとはなんか違った夢の残骸達 sys.builtin_module_names 文字通り、ビルトインで入ってるやつの一覧。足りない http://www.python.jp/doc/release/library/sys.html#sys.builtin_module_names import sys pri
B! 20 0 0 0 Pythonでcallbackを使う時に引数を取り扱う方法について。 Pythonでcallback callbackに引数を渡す callbackへ渡す引数に変数を使う時の注意 Pythonでcallback Pythonでcallbackを使う方法として最も簡単な形としては以下の様な感じ。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 >>> class CallbackExecutor(): ... ... def __init__(self, callback): ... self.callback = callback ... ... def execute(self): ... self.callback('execute') ... ... def echo(v): ... print 'echo: %s' % v ... >>>
I have a problem overriding the method where from...import statement is used. Some example to illustrate the problem: # a.py module def print_message(msg): print(msg) # b.py module from a import print_message def execute(): print_message("Hello") # c.py module which will be executed import b b.execute() I'd like to override print_message(msg) method without changing code in a or b module. I tried
Python では、特定の性質を持つオブジェクトが実装すべき一連のメソッドのことをプロトコルと呼びます (代表的なプロトコルとして イテレータプロトコル などがあります)。ディスクリプタはそのようなプロトコルの一種です。 プロパティや、メソッド(静的メソッド、クラスメソッド、インスタンスメソッド)、 super など、 Python の基本的な機能の背後にはこのディスクリプタが使われています。また、ディスクリプタは汎用的なプロトコルなので、ユーザが定義することも可能です。 ディスクリプタには大きく分けて2つの種類があります。 データディスクリプタ __get__ と __set__ の両方を定義しているディスクリプタ 非データディスクリプタ __get__ だけを定義しているディスクリプタ データディスクリプタは通常の属性アクセスと同じような振る舞いをするもので、プロパティがその典型です。
主観的な観点からPythonとRの比較した記事は山ほどあります。それらに私たちの意見を追加する形でこの記事を書きますが、今回はこの2つの言語をより客観的な目線で見ていきたいと思います。PythonとRを比較をしていき、同じ結果を引き出すためにはそれぞれどんなコードが必要なのかを提示していきます。こうすることで、推測ではなく、それぞれの言語の強みと弱みの両者をしっかりと理解できます。 Dataquest では、PythonとRの両方の言語のレッスンを行っていますが、データサイエンスのツールキットの中では両者ともそれぞれに適所があります。 この記事では、NBA選手の2013/2014年シーズンの活躍を分析したデータセットを解析していきます。ファイルは ここ からダウンロードしてください。解析はまずPythonとRのコードを示してから、その後に2つの異なるアプローチを解説し議論していきます。つま
くーむ@( o・ω・)ノ 産休中 @cocodrips 発表資料です( ・ω・)ノ ゆっくり説明できなかったスライドも多いので、ぜひ見てみてください! "強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp - slideshare.net/cocodrips/pyco…" 2015-10-10 11:31:28
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く