pandas の apply を numpyで実行する場合

# axis = 0 の場合、arr をsumする。
np.apply_along_axis(sum, 0, arr)

# np.vectorize とかも使える
# one-hot --> label encoding
y_val = np.argmax(y_val, axis=1)

multiclass の xgboost 実装

from sklearn.multiclass import OneVsRestClassifier

import xgboost as xgb


_x_train, x_val, _y_train, y_val = train_test_split(batch_np, target_np, test_size=0.1, random_state=13)

params_ = dict(
    max_depth=1, n_estimators=100, random_state=123, n_jobs=4,
)

clf = OneVsRestClassifier(xgb.XGBClassifier(**params_))
clf.fit(_x_train, _y_train)
pred_np=clf.predict(x_val)