numpy错误:无法对灵活类型进行归约,从列表读取数据时出现此问题

0 投票
1 回答
1703 浏览
提问于 2025-04-18 09:13

我正在尝试通过读取csv文件中的列来进行简单的回归分析,并使用numpy和stats来完成这个分析。我的代码在打印x或y的时候都能正常运行,但在最后一行代码时出现了错误。

 line 62, in _mean
    ret = um.add.reduce(arr, axis=axis, dtype=dtype, out=out, keepdims=keepdims)
TypeError: cannot perform reduce with flexible type

我觉得错误出在我把一个列表放进了asarray函数里。如果我手动把数据放进asarray函数,代码就能正常工作,但我想直接从csv文件中读取数据。

这是我的代码:

from scipy import stats
import numpy as np
import pylab
import csv
import sys

cr = csv.reader(open(sys.argv[1],"rU").readlines()[2:])
off_signups=[]
off_cost=[]

for row in cr:
    off_signups.append(row[1])
    off_cost.append(row[2])

x=np.asarray(off_signups)
y=np.asarray(off_cost)

print x
print y

slope, intercept, r_value, p_value, slope_std_error = stats.linregress(x, y)

1 个回答

1

我对Python还很陌生,所以不是专家……

但是我试了一下

a = np.asarray([1, 4, 5, 8], float)

这对我帮助很大。

撰写回答