计算皮尔逊系数遇到错误TypeError: No loop matching the specified signature and casting was found for ufunc add

当我计算皮尔逊系数遇到错误,在StackOverflow上找到答案,特此记录一下

TypeError: No loop matching the specified signature and casting was found for ufunc add

from scipy.stats import pearsonr

当我计算pearsonr系数时,报错如下:

pear = pearsonr(y_test, y_pred)
print("\n pearsonor:", pear)
TypeError: No loop matching the specified signature and casting
was found for ufunc add

究其原因:是因为多了一个维度导致的

y_pred的shape为(127,1)

y_pred.shape
>> (127, 1)

(…, 1)是根本原因,使用np.squeeze()将这个维度移出就能这解决这个问题

np.squeeze(y_pred).shape
(127,)

并且
scipy’s pearsonr package 只接受array或array-likes 输入. 这意味着:

pearsonr只支持

Numpy arrays
Pandas Series

StackOverflow原链接:
stackoverflow原链接

你可能感兴趣的:(机器学习,python,机器学习)