フリーランチ食べたい

No Free Lunch in ML and Life. Pythonや機械学習のことを書きます。

Python

たった数行でpandasを高速化する2つのライブラリ(pandarallel/swifter)

pandas はデータ解析やデータ加工に非常に便利なPythonライブラリですが、並列化されている処理とされていない処理があり、注意が必要です。例えば pd.Sereis.__add__ のようなAPI(つまり df['a'] + df['b'] のような処理です)は処理が numpy に移譲されてい…

PyCon JP 2019でスタッフとしてWebサイトの開発運用をして得た知見と反省

今回PyCon JP 2019にスタッフとして参加し、Webサイトの運用(と最適化アルゴリズムを用いたタイムテーブルの提案)を行いました。そこで得られた知見と反省をまとめて、今後他のカンファレンスなどでWebサイトの開発運用をする方の参考になれば幸いです。 本…

PyCon JP 2019でポスター発表をして得た知見と反省

PyCon JP 2019が終了しました。聴講者としてセッションを見た感想は1つ前のエントリにまとめました。 このエントリでは、自分が行った「ポスター発表」について書きます。今後カンファレンスでポスター発表をする方の参考になれば幸いです。 blog.ikedaosush…

PyCon JP 2019で見たセッションの聴講記録20個分 / 資料・動画・関連リンクなど

2019年9月16日/17日に開催されたPyCon JP 2019で自分が直接/YouTubeで聴講したセッションについてのまとめです。主に下記の内容を書いています。 スピーカーURL 配信動画 スライド 発表内で出てきたライブラリなどのURL 自分の感想 「あのセッションで話して…

人間のためのHTML Parseライブラリ『Requests-HTML』で楽しくデータクローリング

Pythonを使ったデータクローリング・スクレイピングは、エンジニア・非エンジニアを問わず非常に人気や需要のある分野です。しかし、いざデータクローリングしようとすると、複数ライブラリのAPIや、ライブラリそれぞれの関連性に混乱してしまうことがよくあ…

PythonでGitHub Starのトレンドを取得してBokehでプロットしはてなブログに埋め込む

最初に結果です。下のようにGitHub StarのトレンドをBokehで可視化してはてなブログに埋め込む方法を解説します。マウスオーバーしてもらうとtooltipが表示される(=画像埋め込みでない)ことが確認していただけると思います。

【組み合わせ最適化入門】カンファレンスのタイムテーブル決めをマッチング問題としてGoogle OR-Tools/Pulp/munkresで解く

PyCon JPの運営メンバーとして自分は、昨年度のPyCon JP 2018のタイムテーブル決めに組み合わせ最適化問題を用いました。ちなみに最終的なタイムテーブルはアルゴリズムで算出された結果を人間がレビューして調整しています。 昨年度は時間の制約があり、い…

【機械学習】混同行列を表示するのに便利な「pycm」

機械学習のクラス分類モデルを評価する際に用いる混同行列を簡単に表示できるちょっとしたライブラリがあったので紹介します。 混同行列とは、機械学習で予測したクラス分類の結果をまとめた行列です。ちょうど上の画像のように「どのクラスに分類されて」「…

【Python】 機械学習の可視化が捗るライブラリ「Yellowbrick」

機械学習Podcast「TWiML&AI」で先週取り上げられた可視化ライブラリ「Yellowbrick」が非常に便利だったので紹介します!ちなみにPodcastには作者の1人であるRebecca Bilbroさんが出演しているので興味持った方は是非聞いてみてください。 twimlai.com www.s…

【Python】もうprintデバッグはいらない? / PySnooperで楽々デバッキング

Hacker NewsとRedditでバズっていたPythonのデバッグツールが便利だったので紹介です! PySnooperというライブラリです。 Hacker News - PySnooper: Never use print for debugging again Reddit - PySnooper: Never use print for debugging again ※追記 想…

Vaex入門 / 可視化もXGBoostも

はじめに 昨日Vaexの性能評価の記事を書きました。 その記事では長くなってしまうので基本的な使い方などを省略しました。 なので今回は入門記事として使い方を紹介します。 blog.ikedaosushi.com

Pandasで行うデータ処理を100倍高速にするOut-of-CoreフレームワークVaex

TL;DR アウトオブコア、かつマルチコアでデータ処理を行えるVaexの紹介です。 string関係のメソッドで平均して100倍以上の高速化が確認できました。(作者のベンチマークだと最大1000倍) 文字列処理以外でも数倍~数十倍の高速化が行えそうです。 この記事では…

AWS Secrets Managerを使って安全で簡単にGCPの秘密鍵JSONファイルなどの秘匿情報を取り扱う

TL;DR AWS Secrets Managerで秘密鍵JSONファイルなどを簡単に扱うことができます。 1つのユースケースとしてこの記事ではGCPの秘密鍵を扱います。 GCPのSDKに読み込む方法も解説します。 はじめに CI/CDでアクセスキー/シークレットキーなどの秘匿情報を扱う…

【Python】Pipfile.lockを活用したDockerとpipenvでの安全な環境構築

Dockerとpipenvを使った環境構築についての記事はいくつか読んだのですが、PIpfile.lockを更新する運用について書かれている記事が少ない(見つけられなかった)ため、書いておきます。 TL;DR Dockerfile内では pipenv install --system --ignore-pipfile --de…

人間のためのイケてるPython WebFramework「responder」、そして作者のKenneth Reitzについて

この記事は Python その2 Advent Calendar 2018 - Qiita の1日目です。 responderとは GitHub - kennethreitz/responder: a familiar HTTP Service Framework for Python 2018年10月に公開された イケてるPython WebFramework です。 requestsやpipenvなどの…

Pythonに関するオススメの書籍/サイト/サービス/Podcast/イベントの情報

Pythonをこれから勉強したい or 最新情報のキャッチアップがわからない、という方に tskubapy.connpass.com つくばPythonもくもく会 No.2を開催しました! 参加者の方の中にはこれからPythonを始めたい、という方もいらっしゃったので、今まで自分が勉強して…

pathlibで見るPythonの演算子オーバーロード活用

pathlibって便利ですよね 最近pathlibの便利さが様々なところで語られています。 Python3.4以降ならos.pathはさっさと捨ててpathlibを使うべき - Qiita pathlibとかいう優秀すぎる標準ライブラリ(python) - 備忘録とか日常とか pathlibの様々な機能は上記の…