Ошибка Numpy ValueError: не удалось передать операнды вместе с фигурами (152,1) (151,1)

#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 Приветствую, по одному шагу за раз, не беспокойтесь.