pearsonr计算相关性时报错:No loop matching the specified signature and casting was found for ufunc add

在尝试计算Pearson相关性时遇到了TypeError,问题源于输入矩阵的维度或数据类型不匹配。检查后发现矩阵的数据类型一致,但它们是二维数组而非一维。将两个矩阵转为一维数组(flatten)后,错误得以解决。此问题提醒我们在使用统计函数前要确保数据格式正确。
摘要由CSDN通过智能技术生成

遇到的问题

很简单的代码计算相关性:

pcorr = pearsonr (y_ori, yval) [0]

之前使用都没有报错,但是用到一个新的项目后报错了:

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

解决方案

  1. 第一种就是最常见的问题,y_ori和yval的类型不一致。此问题的解决方案是将它们转换成相同类型的矩阵:

y_ori = np.array(y_ori, ‘float32’)
yval = np.array(yval, ‘float32’)

但是这个解决方案对我不起效,经检查我的矩阵数字类型一致。

  1. 矩阵维度不一致或者与pearsonr要求的不一致。挺无语的,我一直在想为啥之前用的好好的现在突然不能用了,然后灵光一闪想起这两个矩阵我没有把它们转成一维数组。。。还是按照二维矩阵输入的,最后转成一维就成功解决了:

y_ori = y_ori.flatten()
yval = yval.flatten()

如果不是dtype的问题,就一定要检查是不是矩阵维数的问题!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值