#python #python-3.x #numpy #array-broadcasting
#python #python-3.x #numpy #массив-трансляция
Вопрос:
У меня есть два массива numpy, оба одинаковой формы (152, 1), я помещаю их в созданную мной функцию среднеквадратичной ошибки, которая выглядит следующим образом:
return np.sum(y - y_hat, axis=1, keepdims=True)**2/len(y_hat)
Но по какой-то причине я получаю ошибку:
ValueError: operands could not be broadcast together with shapes (152,1) (151,1)
Я знаю, что ошибка возникает с помощью y — y_hat, потому что я попытался распечатать это, чтобы посмотреть, что происходит, и я получил ту же ошибку. Я не знаю, в чем может быть проблема, поскольку это совершенно законная матричная операция, и обе формы массива numpy одинаковы. Буду признателен за любую помощь, спасибо.
РЕДАКТИРОВАТЬ: я только что понял, что y_hat — это короткое значение, я думал, что они одинаковы. извините.
Комментарии:
1.Вы уверены
y
, что ониy_hat
имеют одинаковую форму? Ошибка подразумевает,y_hat
что значение является коротким2. да, я только что заметил это, спасибо, я чувствую себя действительно глупо, ха-ха.
3. Не отвечаю на вашу точку зрения, но вы можете использовать
np.mean
вместо деления на длину.4. @Learningisamess спасибо, я попробую это, я все еще немного новичок в numpy, и я узнал только то, что мне нужно, поэтому я не знаю слишком много
5. @Aguy Приветствую, по одному шагу за раз, не беспокойтесь.