タグ

pythonに関するhirokistのブックマーク (87)

  • recsys-python

    Home recsys-python | Pythonによる推薦システム演習問題集 概要 recsys-pythonPythonによる推薦システムの演習問題集です。推薦システムの基である、評価履歴や評価値行列の扱いから、内容ベース推薦システム、近傍ベース協調フィルタリング、推薦システムの評価などに関する問題を取り揃えています。現時点では、13章構成で全163問用意しています。今後、内容を変更したり、問題を追加、削除したりすることもあります。 動機 言語処理100ノックを参考にさせて頂き、推薦システム版の演習問題集を開発したいと思ったのがきっかけです。個人での学習に加え、大学での授業や研究室等でご活用いただければ幸いです。 到達目標 Pythonを学習しながら推薦システムの基を修得できる。 評価履歴や評価値行列を扱いながらNumPyによる行列演算やベクトル演算を修得できる。 数式をP

  • 「Python ゼロからはじめるプログラミング」サポートページ

    教材は、個人的な用途で自由に使用できるだけでなく、「Python ゼロからはじめるプログラミング」を大学や専門学校での授業、または企業などでの研修の教科書として採用された教員・指導員が、授業などで活用することもできます(授業の進め方などに応じて改変いただいて結構です)。 ただし、民間企業が商用、ビジネス目的で利用する際には別途許諾が必要ですので、著者までご連絡ください。

  • 遅くないpandasの書き方 - ML_BearのKaggleな日常

    これは何? この記事は Kaggle Advent Calendar 2021 の7日目の記事です。 pandasはデータ分析ライブラリとして非常に便利ですが、書き方を間違えると簡単に処理が遅くなってしまうという欠点があります。そこで、この記事では遅くならない書き方をするために気をつけたいポイントをいくつかご紹介したいと思います。 この Colab Notebookの実行結果をエクスポートした上で、不要な部分を一部削って記事にしています。colab notebook をコピーして実行してもらえれば再現することが可能なはずです。(colabにコメント等をいただいても返すことはできないと思います、すみません。) 前提条件 この記事ではあくまで「遅くない(なりづらい)書き方を紹介する」ことに努めます。よって、以下のような改善点はあるが一旦考慮の外におくものとして話を進めます。 並列化ライブラリ

    遅くないpandasの書き方 - ML_BearのKaggleな日常
  • Cythonによる内製地図ライブラリの経路検索の高速化 | MoT Lab (GO Inc. Engineering Blog)

    AI技術開発部アルゴリズムグループの谷です。「マップマッチ・経路検索などのアルゴリズムを含む内製地図ライブラリ」のメンテナンスを主業務としています。今回はpythonによって実装された内製地図ライブラリ、特に経路探索部分をCythonを使って高速化した事例を紹介します。 経路検索について経路検索は、指定した出発地点と目的地点を結ぶ2地点間の経路の中で「最も走行時間が短い経路」を探索する技術です。この経路検索で求まる経路は「出発地点から目的地点までたどり着くまでの通過する道路の一覧」になります。また、経路検索により「その経路を通過するまでの所要時間」も求まります。経路検索はタクシーアプリ『GO』の予想到着時間の算出に用いられています。 タクシーアプリ『GO』の経路探索は弊社で内製している地図ライブラリを用いて実現しています。 内製地図ライブラリの現状内製地図ライブラリはpythonで実装し

    Cythonによる内製地図ライブラリの経路検索の高速化 | MoT Lab (GO Inc. Engineering Blog)
  • 2019年に向けてPythonのモダンな開発環境について考える - 朝日ネット 技術者ブログ

    はじめに 開発部の tasaki です。 6 月の記事(「Pythonのパッケージングのベストプラクティスについて考える2018」)では setuptools, pip, venv を使ったパッケージングのフローについて考えました。 techblog.asahi-net.co.jp 今回はモダンな開発用ツールチェーンを持つ他の言語(具体的には JavaScript (Node.js), Go, Rust あたりを意識)と似たような開発フローを Python において構築するにはどうすればよいかということを考えていきます。 はじめに 対象バージョン 備考 TL;DR (結論) pip と virtualenv の統合 (Pipenv) 概要 使い方 インストール Pipenv プロジェクトの新規作成 setup.py との併用 静的な型の検査 (mypy) 概要 設定例 使い方 Lintin

    2019年に向けてPythonのモダンな開発環境について考える - 朝日ネット 技術者ブログ
  • Pythonメモ : better-exceptionsで例外情報を見やすくする - もた日記

    better-exceptions インストール 使い方 better-exceptions github.com better-exceptionsを使用すると例外情報が図のようにみやすくなる。 インストール pipでインストールできるので下記コマンドを実行。 $ pip install better_exceptions 使い方 以下のようにbetter_exceptionsをインポートすればよい。 import better_exceptions 試しに下記コードを実行した場合の出力を比べてみる。 import better_exceptions foo = 52 def shallow(a, b): deep(a + b) def deep(val): global foo assert val > 10 and foo == 60 bar = foo - 50 shallow(b

    Pythonメモ : better-exceptionsで例外情報を見やすくする - もた日記
  • Python による日本語自然言語処理

    はじめに この文書は、 Steven Bird, Ewan Klein, Edward Loper 著 萩原 正人、中山 敬広、水野 貴明 訳 『入門 自然言語処理』 O'Reilly Japan, 2010. の第12章「Python による日語自然言語処理」を、原書 Natural Language Processing with Python と同じ Creative Commons Attribution Noncommercial No Derivative Works 3.0 US License の下で公開するものです。 原書では主に英語を対象とした自然言語処理を取り扱っています。内容や考え方の多くは言語に依存しないものではありますが、単語の分かち書きをしない点や統語構造等の違いから、日語を対象とする場合、いくつか気をつけなければいけない点があります。日語を扱う場合にも

  • テンプレートを使って爆速で機械学習プロジェクトを作成する - Qiita

    あなたは機械学習プロジェクトを毎回違う構成で作っていませんか? 何をどこに配置するかで悩んで時間がかかっていませんか? そんな方に朗報です。 機械学習プロジェクトはコマンド一発で作れます。 以下のようなプロジェクトを数秒で作れます。 ディレクトリ構造 ├── LICENSE ├── Makefile <- Makefile with commands like `make data` or `make train` ├── README.md <- The top-level README for developers using this project. ├── data │ ├── external <- Data from third party sources. │ ├── interim <- Intermediate data that has been transfor

    テンプレートを使って爆速で機械学習プロジェクトを作成する - Qiita
  • 『Pythonで体験するベイズ推論 ―PyMCによるMCMC入門―』の書評 - StatModeling Memorandum

    特長 Pythonユーザが待ちに待ったPythonによるMCMCではないでしょうか。原著タイトルが『Bayesian Methods for Hackers』だけあって、プログラマ・エンジニア向きだと思います。数式はびっくりするほど出てこない代わりに、Pythonコードは非常にたくさんでてきます。そしてPyMCの使い方が基礎から説明してあって丁寧です。自分でコーディングする際は原著のGitHubリポジトリを活用しましょう(なんとStarが10000個を超えてる!)。 Pythonで体験するベイズ推論 PyMCによるMCMC入門 作者: キャメロン・デビッドソン=ピロン,玉木徹出版社/メーカー: 森北出版発売日: 2017/04/06メディア: 単行(ソフトカバー)この商品を含むブログを見る 購入を迷っている人の一番の心配は、書のPyMCのバージョンが1つ前のPyMC2であることだと思

    『Pythonで体験するベイズ推論 ―PyMCによるMCMC入門―』の書評 - StatModeling Memorandum
  • Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER

    今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のようなだったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ

    Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER
  • wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog

    はじめに こんにちは、Python界のラファエル・ナダルです。全豪オープンテニス、盛り上がりましたね。さて、先日次のようなエントリーを立て続けに書いたんですが、「なぜAnacondaに関しての記述がないのか」という突っ込みをもらったので、参照用にメモを残しておきます。 Pythonの仮想環境構築 2017.01版 - YAMAGUCHI::weblog Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください 2017.01 - YAMAGUCHI::weblog なおこの記事の作成にあたっては @aodag に数多くのアドバイスをいただきました。この場を借りて感謝。 TL;DR condaの開発者はPyPAともっとコミュニケーションとってほしい。 前提 この記事はPythonを触り始めたばかりだけど、パッケージ管理ツール等々のスタンダードがどのようになっているかな

    wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog
  • Pythonエンジニアが紹介する、Pythonの超便利なライブラリ・フレームワーク13個 - paiza times

    Photo by hoerner_brett 秋山です。 私は主にPythonを使って開発をしているので、今回はPythonの便利なライブラリやフレームワークを紹介していきたいと思います。 といっても割と定番のものを中心に使っているので、既にPythonをがんがん使っている人にとっては「知ってるわ!」というものも多いかと思います。「最近Python書くようになりました~」という人たちにも「これ良い!」ってものが見つかればと思います。 ちなみに前回はPython2系と3系の違いについて書いてますので、「3系に移行しよっかなー」と考えている人は合わせて見てみてください。 paiza.hatenablog.com ■Pythonの便利なライブラリやフレームワーク ◆Web開発系フレームワーク ◇Django みんな大好き有名なDjangoRubyでいうところのRailsのような……全部のせ的な

    Pythonエンジニアが紹介する、Pythonの超便利なライブラリ・フレームワーク13個 - paiza times
  • Python 2.7.x と 3.x の決定的な違いを例とともに | POSTD

    Pythonを始めたばかりのユーザーの多くが、どちらのバージョンを使えばいいのか迷っています。私の答えは、「気に入ったチュートリアルに書かれているバージョンにしましょう。そして、あとで違いを調べてください」という言葉につきます。 それでは、新しいプロジェクトを始めるときにはどちらを選べばいいのでしょうか? 使おうとしているライブラリを全てサポートしているなら、2.7.x系と3.x系のどちらを使ってもよいでしょう。そうはいっても、この2つのメジャーバージョンについて大きな違いを見ておくのは良いでしょう。どちらかのみでコードを書いたり、プロジェクトに使おうとしている時によくある落とし穴を避けられるからです。 __future__ モジュール Python 3.x で導入されていて Python 2 で使えないキーワードについては、 __furute__ モジュールをインポートすることで Pyt

    Python 2.7.x と 3.x の決定的な違いを例とともに | POSTD
  • みんなのPython を3.xで勉強するためのTips - None is None is None

    みんなのPython Webアプリ編がPDFで無料公開されていますが、このPython 2.x向けに書かれているので、3.xではそのまま動かない点がチラホラ・・・ とりあえずChapter04を読んでみたところ、以下のような変更が必要です。 CGIHTTPServer -> http.server 3.xでは、標準ライブラリが整理され、名前が変わっている場合があります。 #2.x import CGIHTTPServer CGIHTTPServer.test() #3.x import http.server http.server.test(HandlerClass=http.server.CGIHTTPRequestHandler) 文字列リテラル 3.xではコーテーションで囲ったものが、2.xでいう文字列を表すようになりました。 #2.x greeting_string = u"

    みんなのPython を3.xで勉強するためのTips - None is None is None
  • PythonでWeb開発入門 みんなのPython Webアプリ編 HTML版(無料) | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    ブロックチェーンの入門書を書きました。暗号やハッシュなどを含め,基礎からブロックチェーンの仕組みを学べる書籍です。いろんな方に「新しい技術を学ぶことの楽しさ」を感じ取ってくれたら著者として嬉しいです:-)。お金技術的にどのように定義されるのか。 一部読者から高い評価をいただき,絶版となりながら中古市場でプレミア価格がついていた拙著「みんなのPython Webアプリ編」のHTML版をお送りします。Pythonを使って,Webアプリを開発するための方法を,基的な事柄から積み重ね式に解説した書籍をHTMLにしたのがコンテンツです。 編集部のご厚意で作ってもらった配布用PDFをベースに作っています(PDF作成だけでなく,出版契約の解除など必要な手続きを快く受けて頂いた担当様にはとても感謝しております)。構成などは著書をベースにしていますが,HTML化する過程で少し手直ししてあります。特にP

  • 形態素解析エンジンMeCabをPython3でも使えるようにする(Macの場合) - StatsBeginner: 初学者の統計学習ノート

    MeCabのPythonバインディングはPython3で使えない? 日語の文章を解析する際には欠かせない、形態素解析エンジン"MeCab"の導入に関するエントリを以前書きました(過去エントリ)。 MeCabの公式サイトにいくとPythonバインディングというのが配布されていて、Python上でMeCabを使うことができるのですが、これだとPython2系でしか使えません。 もともとこのPythonバインディングは、MeCabのプログラムからSWIGというツールを用いて自動生成したものらしく、この生成をやり直せばPython3系でも使うことができるようになります。 [追記]じつは、コメント欄で指摘を頂き、pipでmecab-python3というのが配布されていることが分かったので、公式サイトに置いてあるやつを使わずに、後述のとおりpipからインストールすれば全て解決しますw[/追記] ここ

    形態素解析エンジンMeCabをPython3でも使えるようにする(Macの場合) - StatsBeginner: 初学者の統計学習ノート
  • どうすればPythonをJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る | POSTD

    どうすればPythonJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る JuliaPython 科学技術計算には、Pythonなどの言語よりもJuliaを使った方がいいのでしょうか? http://julialang.org/ に載っているベンチマークを見ると、どうしてもそんな風に思ってしまいます。というのも、Pythonなどの高水準言語は、スピード面で大幅に劣っているのです。けれども、これは私が最初に感じた疑問ではありません。私が気になったのは、「Juliaのチームが書いたPythonのベンチマークは、Pythonに最適なものだったのか?」ということです。 こういった多言語の比較について、私の考えを述べましょう。まずベンチマークというのは、実行するタスクによって定義されるものです。よって、そのタスクを実行するための最適なコードを、各言語に精通した人々が最

    どうすればPythonをJuliaと同じくらい速く動かせるのか? : 様々なやり方で計算の高速化を図る | POSTD
  • Python pandas 欠損値/外れ値/離散化の処理 - StatsFragments

    データの前処理にはいくつかの工程がある。書籍「データ分析プロセス」には 欠損など 前処理に必要なデータ特性の考慮とその対処方法が詳しく記載されている。 が、書籍のサンプルは R なので、Python でどうやればよいかよく分からない。同じことを pandas でやりたい。 データ分析プロセス (シリーズ Useful R 2) 作者: 福島真太朗,金明哲出版社/メーカー: 共立出版発売日: 2015/06/25メディア: 単行この商品を含むブログ (2件) を見る とはいえ、pandas 自身は統計的 / 機械学習的な前処理手法は持っていない。また Python には R と比べると統計的な前処理手法のパッケージは少なく、自分で実装しないと使えない方法も多い。ここではそういった方法は省略し、pandas でできる前処理 / 可視化を中心に書く。 また、方法自体の説明は記載しないので、詳細

    Python pandas 欠損値/外れ値/離散化の処理 - StatsFragments
  • Python 3誕生の理由 ― つまり、なぜunicode/str/bytesの仕様は変更されたのか | POSTD

    12月、私は PuPPy(the Puget Sound Python users group)の会合でQ&A セッション を行いました。そこでようやくPython 3が誕生した理由と、string/bytesに関する全てを説明しました。Python 3が作られた理由をユーザはもう知っているはずだと思っていたので、私はこの説明で称賛を得たことに、ちょっと驚きました。後で考えてみると、Pythonに詳しい人もそうでない人も含めて大多数の人が、その理由を探すように言われたり、好奇心からその理由を探し当てられるなどと考えた私が愚かでした。ですから、このブログの記事で、Python 3が存在する理由をわかりやすく説明します。後方互換性の全くない unicode / str / bytes の仕様変更は、Python 3のコードの移植の中でも当に難解な部分ですので、私たちがその仕様変更を選択した理

    Python 3誕生の理由 ― つまり、なぜunicode/str/bytesの仕様は変更されたのか | POSTD
  • 私が選ぶ2015年の”新しい”Pythonモジュール トップ5 | POSTD

    最近、このモジュールをに紹介したところ、そのシンプルさと実用性に驚いていました。 joblib joblibの存在は以前から知ってはいたものの、実際のところはよく理解しておらず、いろいろな機能を寄せ集めたようなモジュールだと思っていました。まあ、その印象は今もあまり変わりませんが、実は非常に便利なモジュールだったのです。私は Flowminder の同僚から再度joblibを勧められて、このモジュールをデータ分析用のコードに幅広く使用しました。では、その機能について紹介しましょう。joblibは大きく分けて、 キャッシング 、 並列化 、 永続化 (データの保存と読み込み)の3つの機能から成ります。実を言うと、私はまだ並列プログラミングの機能は使ったことがないのですが、あとの2つの機能は頻繁に使ってきました。 キャッシング機能とは、シンプルなデコレータを使って、関数を簡単に”メモ化”する

    私が選ぶ2015年の”新しい”Pythonモジュール トップ5 | POSTD