Иногда я вижу, как люди пишут такой код (полный фрагмент кода можно найти в => http://scikit-learn.org/stable/auto_examples/ensemble/plot_feature_transformation.html#sphx-glr-auto-examples-ensemble-plot-feature-transformation-py),
some_3_dimensional_list[:, :, 0]
,
Я думаю, что цель приведенного выше кода - удалить последнее измерение и преобразовать трехмерный список в двухмерный список, правильно (поскольку 0
означает ничего не хранить)? И хотите знать, является ли это наиболее элегантным и эффективным способом сделать это (удалить последнее измерение)?
grd = GradientBoostingClassifier(n_estimators=n_estimator)
grd_enc = OneHotEncoder()
grd_lm = LogisticRegression()
grd.fit(X_train, y_train)
grd_enc.fit(grd.apply(X_train)[:, :, 0])
grd_lm.fit(grd_enc.transform(grd.apply(X_train_lr)[:, :, 0]), y_train_lr)
Обратите внимание, что это не сам Python, а через модуль numpy.
@ cᴏʟᴅsᴘᴇᴇᴅ, спасибо. Я думаю, мы имеем в виду одно и то же. В чем разница между моим утверждением и вашим?
since 0 means keep nothing
... нет, это означает взять первый 2D-срез из 3D-массива.