Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误:绘制线性回归_Python_Numpy - Fatal编程技术网

Python 类型错误:绘制线性回归

Python 类型错误:绘制线性回归,python,numpy,Python,Numpy,Python新手,尝试绘制两个列表的线性回归。这就是我到目前为止所做的: #!/usr/bin/python import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from numpy import arange,array,ones#,random,linalg from pylab import plot,show from scipy import stats from sys import arg

Python新手,尝试绘制两个列表的线性回归。这就是我到目前为止所做的:

#!/usr/bin/python

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from numpy import arange,array,ones#,random,linalg
from pylab import plot,show
from scipy import stats
from sys import argv

a = argv[1]
b = argv[2]

list1 = open(a)
list2 = open(b)

xi = list1.read().splitlines()
y = list2.read().splitlines()

slope, intercept, r_value, p_value, std_err = stats.linregress(xi,y)

print 'r value', r_value

line = slope*xi+intercept
plot(xi,line,'r-',xi,y,'o')
plt.savefig('myfig')
我得到以下错误:

Traceback (most recent call last):
  File "plot.py", line 21, in <module>
    slope, intercept, r_value, p_value, std_err = stats.linregress(xi,y)
  File "/export/apps/Python/2.7.2-CentOS6.0/lib/python2.7/site-packages/scipy/stats/stats.py", line 3007, in linregress                                                                                         
    xmean = np.mean(x,None)                                                                             
  File "/export/apps/Python/2.7.2-CentOS6.0/lib/python2.7/site-packages/numpy/core/fromnumeric.py", line 2727, in mean                                                                                          
    out=out, keepdims=keepdims)                                                                         
  File "/export/apps/Python/2.7.2-CentOS6.0/lib/python2.7/site-packages/numpy/core/_methods.py", line 66, in _mean                                                                                              
    ret = umr_sum(arr, axis, dtype, out, keepdims)                                                      
TypeError: cannot perform reduce with flexible type 
回溯(最近一次呼叫最后一次):
文件“plot.py”,第21行,在
斜率,截距,r_值,p_值,标准误差=stats.linregresse(xi,y)
linregress中的文件“/export/apps/Python/2.7.2-CentOS6.0/lib/python2.7/site packages/scipy/stats/stats.py”,第3007行
xmean=np.平均值(x,无)
文件“/export/apps/Python/2.7.2-CentOS6.0/lib/python2.7/site packages/numpy/core/fromneric.py”,第2727行,平均值
out=out,keepdims=keepdims)
文件“/export/apps/Python/2.7.2-CentOS6.0/lib/python2.7/site packages/numpy/core/_methods.py”,第66行,单位为
ret=umr_和(arr、轴、数据类型、out、keepdims)
TypeError:无法使用灵活类型执行reduce

我的猜测是,将字符串列表传递给
LinRegression
是不符合犹太教义的。首先尝试将它们转换为浮动:

xi = [float(xk) for xk in xi]
y = [float(yk) for yk in y]
slope, intercept, r_value, p_value, std_err = stats.linregress(xi,y)

根据
xi
y
中的内容,您可能需要先去掉一些空字符串,或者以其他方式清理输入。

谢谢,它成功了!我还必须清除你提到的空字符串。