如何解决stats.pearsonr 不支持 + 的操作数类型:'float' 和 'numpy.str_'
我正在使用 stats.pearsonr 来查找 r 值,该值可用于计算数字的两个向量(列表)之间的相似性,例如基因表达值。 dic[gene[i]] 和 dic[gene[j]] 都是列表
dic[gene[j]] = ['145.544','135.24','56.5138','135.826','100.222','67.9036','71.9729','64.8282','98.5264','8.81885','74.5485','36.8456','165.306','137.346']
dic[gene[i]] =['157.156','431.292','401.941','243.974','196.058','8.54743','527.666','603.364','189.298','165.956','81.9865','214.528','511.015','431.634']
但是,即使列表包含浮点数,我似乎也无法运行代码
network = []
for i in range(len(gene)):
for j in range(i):
r,p = stats.pearsonr(dic[gene[i]],dic[gene[j]])
if r>0.99:
network.append([gene[i],gene[j]])
print(len(network))
这是我的错误
/usr/local/lib/python3.7/dist-packages/scipy/stats/stats.py in pearsonr(x,y)
3512 # that the data type is at least 64 bit floating point. It might have
3513 # more precision if the input is,for example,np.longdouble.
-> 3514 dtype = type(1.0 + x[0] + y[0])
3515
3516 if n == 2:
TypeError: unsupported operand type(s) for +: 'float' and 'numpy.str_'
知道怎么做吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。