はじめに
最近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))
これで以前の方法と同じ結果が得られます。
また、データフレームに文字列が入っていてもそのまま実行可能です。