我正在尝试运行某人的脚本进行一些模拟我尝试绘制一些直方图,但是当我这样做时,我总是得到上面提到的错误信息.我不知道出了什么问题.
这是我得到的完整回溯错误:
File "AVAnalyse.py", line 205, in <module>
f.write(line[0]+' '+line[1]+' '+line[2]+' '+line[3])
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('S32') dtype('S32') dtype('S32')
Run Code Online (Sandbox Code Playgroud)
这是我试图运行的代码:
name_out = "histogram_"+donor+"_"+acceptor+".dat"
f = open(name_out,'w')
f.write('distance d.probability efficiency e.probability')
for line in dist_hist:
f.write(line[0]+' '+line[1]+' '+line[2]+' '+line[3])
f.close()
print "data saved in " +"histogram_"+donor+"_"+acceptor+".dat"
Run Code Online (Sandbox Code Playgroud)
任何关于我出错的帮助/解释都将不胜感激!先感谢您!
Edu*_*sov 19
这似乎是line[0],line[1],line[2],line[3]是的元素dist_hist.dict_hist是一个numpy.ndarray.元素dict_hist具有数字类型(如np.float64)(基于附加文件的计算).您正在尝试添加不同类型的元素:np.float64和str.如果你想避免这种情况TypeError,你可以改变的类型line[0],line[1],line[2],line[3]为str.
你的代码片段应该是这样的:
name_out = "histogram_"+donor+"_"+acceptor+".dat"
f = open(name_out,'w')
f.write('distance d.probability efficiency e.probability')
for line in dist_hist:
f.write(str(line[0])+' '+str(line[1])+' '+str(line[2])+' '+str(line[3]))
f.close()
print "data saved in " +"histogram_"+donor+"_"+acceptor+".dat"
Run Code Online (Sandbox Code Playgroud)
编辑:
你应该替换这段代码:
name_out = "histogram_"+donor+"_"+acceptor+".dat"
f = open(name_out,'w')
f.write('distance d.probability efficiency e.probability')
for line in dist_hist:
f.write(line[0]+' '+line[1]+' '+line[2]+' '+line[3])
f.close()
Run Code Online (Sandbox Code Playgroud)
到这一个:
name_out = "histogram_" + donor + "_" + acceptor + ".dat"
f = open(name_out,'w')
f.write('distance d.probability efficiency e.probability\n')
for line in dist_hist:
f.write(str(line[0]) + ' ' + str(line[1]) + ' ' + str(line[2]) + ' ' + str(line[3]) + '\n')
f.close()
Run Code Online (Sandbox Code Playgroud)
在此之前,字符串被写入一行文件.因为你的数据变量指向空数组,因为我们开始从第二行读取(它是空的).
| 归档时间: |
|
| 查看次数: |
52237 次 |
| 最近记录: |