ValueError: vorm komt niet overeen: objecten kunnen niet worden uitgezonden naar een enkele vorm

Ik gebruik de SciPy’s pearsonr(x,y)methode en ik kan niet achterhalen waarom de volgende fout optreedt:

ValueError: vorm komt niet overeen: objecten kunnen niet worden uitgezonden naar een enkele vorm

Het berekent de eerste twee (ik voer enkele duizenden van deze tests in een lus uit) en sterft dan. Heeft iemand enig idee wat het probleem kan zijn?

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

dit is de regel in de peersonr-methode waarop de fout optreedt, alle hulp wordt zeer op prijs gesteld.


Antwoord 1, autoriteit 100%

Deze specifieke fout houdt in dat een van de variabelen die in de rekenkunde op de regel worden gebruikt, een vorm heeft die onverenigbaar is met een andere op dezelfde regel (d.w.z. zowel verschillend als niet-scalair). Aangezien nen de uitvoer van np.add.reduce()beide scalairen zijn, impliceert dit dat het probleem bij xmen ym, waarvan de twee gewoon uw x– en y-invoer zijn minus hun respectieve middelen.

Op basis hiervan vermoed ik dat je xen yinvoer verschillende vormen van elkaar hebben, waardoor ze incompatibel zijn voor elementgewijze vermenigvuldiging.

** Technisch gezien is het niet zo dat variabelen op dezelfde regel incompatibele vormen hebben. Het enige probleem is wanneer twee variabelen die worden toegevoegd, vermenigvuldigd, enz., onverenigbare vormen hebben, of de variabelen nu tijdelijk zijn (bijvoorbeeld functie-uitvoer) of niet. Twee variabelen met verschillende vormen op dezelfde lijn zijn prima zolang iets anders het probleem oplost voordat de wiskundige uitdrukking wordt geëvalueerd.

Other episodes