import numpy as np
from sklearn.preprocessing import OneHotEncoder

# create OneHotEncoder object
ohe = OneHotEncoder()

# fit and transform categorical features
X_cat_encoded = ohe.fit_transform(X_cat)

# concatenate encoded categorical features with numerical features
X_encoded = np.concatenate((X_num, X_cat_encoded.toarray()), axis=1)