
開発Tips
numpy、pandas、scikit-learn、bash、SQL、TensorFlowなど、プログラミングやライブラリの使い方に関するTipsをまとめたセクションです。
[2020-05-30] : ブログ記事をこちらのサイトに移管しました。
[2026-05-01] : 古くなった複数の記事を削除しました。
2025

2023

pandasのカラムに格納された同じ長さのリストを、applyとpd.Series、pop、joinを組み合わせて複数の独立したカラムに展開する方法を解説する。

pandasのカラムに格納されたリストを、scikit-learnのMultiLabelBinarizerを使ってワンホットエンコードし、元のDataFrameに結合する方法を解説する。

ECサイトなどの時系列データで欠損している日付を、pandasのdate_rangeとreindexを使って一定間隔で補完する方法を解説する。

pandasとnumpyの標準偏差の計算結果が異なる原因が、自由度(ddof)のデフォルト値の違いにあることを検証し、一致させる方法を示す。

pandasでgroupby後にfilterとlambdaを組み合わせて、条件を満たすグループだけを抽出する方法を紹介する。

SymPyを用いて二項分布からポアソン分布への極限操作や、正規分布の最尤推定とフィッシャー情報量の導出過程を記号計算で再現する方法を解説する。



SQLのGROUP_CONCAT関数を使い、記事とタグのテーブルを例に、グループ化した行の文字列をカンマ区切りで1行にまとめる方法を解説する。

SQLにおけるNULLの扱いとCOALESCE関数の使い方を、商品テーブルの計算例を用いて解説し、NULLによる計算結果の消失を防ぐ方法を紹介する。


SQLのUNIONとUNION ALLの違いを、2つのクラス名簿を統合する例で解説し、重複排除の有無によるパフォーマンスの違いを説明する。

SQLのWHERE句とHAVING句の違いを、注文データの集計例を用いて解説し、集計前後どちらでフィルタリングすべきかを整理する。

SQLの自己結合(Self Join)について、社員と上司の階層データを例に、同じテーブルをエイリアスで結合する方法を解説する。




PythonでSQLiteとPolarsを使ってSQLを実行・検証する環境構築と、テーブル作成や基本的なSELECT・WHERE・ORDER BYの使い方を解説する。
2022

pytorchでテンソルを反転させる方法を、numpyのスライスによる配列反転と比較しながらtorch.flipやtorch.fliplrの使い方で解説する。

論文用のグラフを作成する際のmatplotlibの書式設定(フォント、目盛り、複数グラフの並置など)をテンプレートとしてまとめる。


NaNを含むndarrayにnp.meanやnp.stdを使うとnanが返される問題を、np.nanmeanやnp.nanstdで回避する方法を紹介する。

matplotlib-vennのvenn2/venn3を使って2つや3つのデータセットの重複関係を表すベン図を作成する方法を紹介する。

pandasでdropna後にSeries型の列を追加するとインデックスのずれによりNaNが混入する問題と、reset_indexによる対処法を解説する。
2021

sudo権限のない共有サーバー環境で、libevent・ncurses・openssl・curl・git・vimをソースからビルドしローカルにインストールする手順をまとめる。

Jupyter NotebookでPythonの変数を{}で囲みbashのマジックコマンドに引き継いで、ディレクトリ作成などに利用する方法を紹介する。

jupyter notebookで指定したconda環境のカーネルが正しく読み込まれない問題の原因調査と、カーネル設定ファイルの確認方法をまとめる。

pandasのgroupby結果を取り出す際、groupbyオブジェクトを直接forで回す方法が、値ごとのフィルタ処理より高速であることを実測で確認する。


回帰問題向けのLightGBMのテンプレートとして、データ取得からモデル構築、Cross Validation、テスト評価、Shapによる特徴量分析までの一連の流れをまとめる。

Kerasを用いたRNNで、USD/JPY、EUR/USD、GBP/USDの為替(FX)予測を練習として試み、データ取得から前処理までを解説する。

KerasのRNN・LSTMを用いて日経平均株価とS&P500の株価予測を試み、データ取得から前処理、モデル構築までを解説する。

2020

Kerasを用いてsequence to sequence(Encoder-Decoder)モデルの基礎を解説し、sin関数をcos関数に変換するモデルを実装する。




word2vecとdoc2vecによる分散表現の基礎を解説し、青空文庫のテキストデータを使って単語や文章のベクトル化を行う。

brew経由でdlibをインストールしopensslが1.1.1系にアップグレードされた際にgemやrequireで発生するlibssl.1.0.0.dylibエラーの原因と、rbenv再インストールによる対処法をまとめる。


Ehrenberg氏の論文「Repeat-Buying」を紹介し、購入回数をガンマ分布で表現する根拠や負の二項分布が導かれる過程を解説する。

「確率思考の戦略論」の巻末解説にある6つの分析ツールを紹介し、ガンマ・ポアソン・リーセンシーモデルの計算をscipyのcurve_fitで実装する。

「確率思考の戦略論」の内容に沿い、二項分布やポアソン分布など消費者プリファレンスを表す確率分布の意味をPythonのコード例とともに解説する。