One-Hotベクトル化はPandasのget_dummiesを使えば簡単だった!

はじめに

最近Pandasを勉強しています。
get_dummiesを使えばOne-Hotベクトル化が簡単に実現できました。

以前の方法

GluonTS 0.6.4 が公開された - パソコン関連もろもろ
わざわざ関数を定義してOne-Hotベクトル化を行っていました。

def one_hot(x, start_zero = True):

    if not start_zero:
        x = x-1 
    category_n = x.max() + 1
    one_hot_vec = np.identity(category_n)[x]

    return one_hot_vec.transpose(1,0)

feat4 = one_hot(df.weekday, start_zero=True)

新たに習得した方法

feat4 = np.array(pd.get_dummies(df.weekday)).transpose((1,0))

これで以前の方法と同じ結果が得られます。
また、データフレームに文字列が入っていてもそのまま実行可能です。

感想

いままでなんとなくスクリプト書いていましたがPandas、Numpy、pillow、matplotlibなど基本から勉強するべきと痛感しました。