Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/124.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
+;的操作数类型不受支持:';int';和';列表';-python_Python_Python 2.7 - Fatal编程技术网

+;的操作数类型不受支持:';int';和';列表';-python

+;的操作数类型不受支持:';int';和';列表';-python,python,python-2.7,Python,Python 2.7,我在csv文件中有如下数据: F1,1,1,1,1,0,1,1,0,0,1 F2,1,0,0,0,0,0,1,0,1,1 F3,1,0,0,0,0,0,1,1,1,1 F4,1,0,0,0,0,0,1,1,1,0 F5,14,24,22,22,22,16,18,19,26,22 F6,8.0625,6.2,6.2609,6.6818,6.2174,6.3333,7.85,6.0833,6.9655,6.9167 F7,0,0,0,0,0,0,1,0,1,0 F8,1,0,2,0

我在csv文件中有如下数据:

 F1,1,1,1,1,0,1,1,0,0,1 
 F2,1,0,0,0,0,0,1,0,1,1
 F3,1,0,0,0,0,0,1,1,1,1
 F4,1,0,0,0,0,0,1,1,1,0
 F5,14,24,22,22,22,16,18,19,26,22
 F6,8.0625,6.2,6.2609,6.6818,6.2174,6.3333,7.85,6.0833,6.9655,6.9167
 F7,0,0,0,0,0,0,1,0,1,0
 F8,1,0,2,0,0,0,2,0,0,0
 F9,1,0,0,0,1,1,0,0,0,0
 F10,8,4,3,3,3,6,8,5,8,4
 F11,0,0,1,0,0,1,0,0,0,0
 F12,1,0,0,0,1,0,1,1,1,1
我只想对数字求和,而不是字符串和我的代码,如下所示:

import csv
import math
import copy

class Pearsons:

def __init__(self,fiturs,docs):
    self.fiturs = fiturs
    self.docs = docs

def x_value(self):
    sumx = []
    for fitur in self.fiturs:
        x = sum(([float(x)]) for x in fitur[1:])
        sumx.append(x)
    print sumx

def x_pow(self):
    sumxp = []
    for fitur in self.fiturs:
        xval_pow = sum([float(x)**2 for x in fitur[1:]])
        sumxp.append(xval_pow)
    return sumxp

def y_value(self):
    sumy = []
    for dokumen in self.docs:
        if dokumen[2] == "POSITIF":
            sumy.append(1)
        else:
            sumy.append(0)
    sigma_y = sum(sumy)
    return sigma_y

def y_pow(self):
    sumy = []
    for dokumen in self.docs:
        if dokumen[2] == 'POSITIF':
            sumy.append(1)
        else:
            sumy.append(0)
    ypow = []
    for x in sumy:
        ypow.append(x ** 2)
    sigmapow = sum(ypow)
    return sigmapow

def xy_val(self):
    list_y = []
    for dokumen in self.docs:
        if dokumen[2] == 'POSITIF':
            list_y.append(1)
        else:
            list_y.append(0)
    # print list_y
    sigmaxy = []
    for xyfitur in self.fiturs:
        xy = []
        for i, x in enumerate(list_y):
            xy.append(float(xyfitur[i]) * list_y[i])
        sigmaxy.append(sum(xy))
    return sigmaxy

def pearsons(self):
    list_y = []
    for dokumen in self.docs:
        if dokumen[2] == 'POSITIF':
            list_y.append(1)
        else:
            list_y.append(0)
    # Assume len(x) == len(y)
    n = len(list_y)
    sigmax = self.x_value()
    sigmay = self.y_value()
    sigmaxpow = self.x_pow()
    sigmaypow = self.y_pow()
    sigmaxy = self.xy_val()

    rpxy_list = []
    for i, v in enumerate(sigmax):
        rpxy_top = (n * sigmaxy[i]) - (sigmax[i] * sigmay)
        rpxy_bot = math.sqrt((n * sigmaxpow[i]) - (sigmax[i] ** 2)) * math.sqrt((n * sigmaypow) - (sigmay ** 2))
        if rpxy_bot == 0:
            rpxy_list.append(0)
        else:
            rpxy_list.append(abs(rpxy_top / rpxy_bot))
    #print rpxy_list
    return rpxy_list

fiturs = []
docs = []
with open("features2.csv", "rb") as f:
    fiturcsv = csv.reader(f, None)
    fiturs = [x for x in fiturcsv]
    fiturs.insert(0, fiturs[0])

with open("datalatih.csv", "rb") as f:
    docscsv = csv.reader(f)
    docs = [x for x in docscsv]

p = Pearsons(fiturs, docs)
# nb.BernoulliNaiveBayes()
p.x_value()
#p.xy_val()
它会导致以下错误:

C:/Users/USER/PycharmProjects/Skripsi/coba.py回溯(最新版本) 调用last):文件“C:/Users/USER/PycharmProjects/Skripsi/coba.py”, 第117行,在 p、 x_值()文件“C:/Users/USER/PycharmProjects/Skripsi/coba.py”,第14行,x_值 x=fitur[1:]中x的和([float(x)])类型错误:不支持+:“int”和“list”的操作数类型

进程已完成,退出代码为1


代码中有一个额外的
]

应该是

def x_value(self):
    sumx = []
    for fitur in self.fiturs:
        
        x = sum([float(x) for x in fitur[1:]])
        sumx.append(x)
    print sumx
改变了我

[7.0, 7.0, 4.0, 5.0, 4.0, 205.0, 67.5714, 2.0, 5.0, 3.0, 52.0, 2.0, 6.0]

错误发生在哪一行?self.fiturs中有什么?我刚刚更新了代码,出现了以下错误,self.fiturs是数据F1-F12@Mickneilly您的标识已关闭,任何类方法都应该在类内缩进…天哪,对不起,我不是焦点。顺便说一句,非常感谢@mickNeillNo问题。如果答案是正确的,请记下我的答案。