python pearson

python - ¿Qué significa este error: ValueError: desajuste de forma: los objetos no pueden transmitirse a una sola forma?



pearson (1)

Este error en particular implica que una de las variables que se utilizan en la aritmética en la línea tiene una forma incompatible con otra en la misma línea (es decir, tanto diferentes como no escalares). Dado que n y la salida de np.add.reduce() son escalares, esto implica que el problema reside en xm y ym , las dos de las cuales son simplemente las entradas x e y sin sus respectivos medios.

Basado en esto, mi conjetura es que sus entradas x e y tienen diferentes formas entre sí, lo que las hace incompatibles para la multiplicación de elementos.

** Técnicamente, no es que las variables en la misma línea tengan formas incompatibles. El único problema es cuando dos variables que se agregan, se multiplican, etc., tienen formas incompatibles, ya sea que las variables sean temporales (por ejemplo, salida de función) o no. Dos variables con diferentes formas en la misma línea están bien siempre que otra cosa corrija el problema antes de evaluar la expresión matemática.

Estoy usando el método scipy pearsonr (x, y) y no puedo entender por qué está ocurriendo este error. Calcula los dos primeros (estoy ejecutando varios miles de estas pruebas en un bucle) y luego muere. ¿Alguien tiene alguna idea sobre cuál podría ser el problema?

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

¡Esta es la línea en el método de Pearsonr en la que se produce el error, cualquier ayuda sería muy apreciada gracias!