ValueError: несоответствие формы: объекты не могут быть переданы одной фигуре

Я использую метод SciPy pearsonr(x,y) и не могу понять, почему происходит следующая ошибка:

ValueError: несоответствие формы: объекты не могут быть переданы одной фигуре

Он вычисляет первые два (я запускаю несколько тысяч из этих тестов в цикле), а затем умирает. У кого-нибудь есть идеи о том, в чем может быть проблема?

r_num = n*(np.add.reduce(xm*ym))

это строка в методе Пирсона, на которой возникает ошибка, любая помощь будет принята с благодарностью.

Ответ 1

Эта конкретная ошибка подразумевает, что одна из переменных, используемых в арифметике на линии, имеет форму, несовместимую с другой на той же строке (то есть как разные, так и нескалярные). Поскольку n и выходные данные np.add.reduce() оба являются скалярами, это означает, что проблема заключается в xm и ym, два из которых являются просто вашими входами x и y минус их соответствующие средние значения.

Исходя из этого, я предполагаю, что ваши входы x и y имеют различные формы друг от друга, что делает их несовместимыми для поэлементного умножения.

** Технически, это не значит, что переменные в одной строке имеют несовместимые формы. Единственная проблема заключается в том, что две добавляемые переменные, умноженные и т.д., Имеют несовместимые формы, независимо от того, являются ли переменные временными (например, выходные данные функции) или нет. Две переменные с разными формами в одной строке хороши, если что-то еще исправляет проблему до того, как вычисляется математическое выражение.