Я обнаружил, что мне нужно добавить функции в существующие массивы numpy, что привело к вопросу о том, что на самом деле делает последняя часть следующего кода:
np.ones(shape=feature_set.shape)[...,None]
Настройка
В качестве примера, скажем, я хочу решить для оценок параметров линейной регрессии, используя numpy и решение:
Предположим, у меня есть форма набора объектов (50,1), целевая переменная shape (50,), и я хочу использовать форму моей целевой переменной, чтобы добавить столбец для значений перехвата.
Это будет выглядеть примерно так:
# Create random target & feature set
y_train = np.random.randint(0,100, size = (50,))
feature_set = np.random.randint(0,100,size=(50,1))
# Build a set of 1s after shape of target variable
int_train = np.ones(shape=y_train.shape)[...,None]
# Able to then add int_train to feature set
X = np.concatenate((int_train, feature_set),1)
Что я думаю, что знаю
Я вижу разницу в выходных данных, когда я включаю [..., None] по сравнению с тем, когда я их отключаю. Вот оно:
Вторая версия возвращает ошибку вокруг входных массивов, требующих одинакового количества измерений, и в конце концов я наткнулся на решение использовать [..., None].
Основной вопрос
Хотя я вижу, что результат [..., None] дает мне то, что я хочу, я изо всех сил пытаюсь найти какую-либо информацию о , что это на самом деле должно делать. Кто-нибудь может рассказать мне, что на самом деле означает этот код, что делает аргумент None и т. Д.?
Спасибо!