Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 类,numpy,数据集文件:TypeError:&x27;dict';对象不可调用_Python_Python 3.x_Oop_Typeerror - Fatal编程技术网

Python 类,numpy,数据集文件:TypeError:&x27;dict';对象不可调用

Python 类,numpy,数据集文件:TypeError:&x27;dict';对象不可调用,python,python-3.x,oop,typeerror,Python,Python 3.x,Oop,Typeerror,刚开始编程并尝试学习OOP和ML。是的,同时学习这两个概念是一个巨大的挑战,也是一种享受。我遇到了这个错误,我不确定如何修复它 class DataInputOutput: def __init__(self, inputData, outputData): self.input = inputData self.output = outputData class DTModel: def __init__(self, dataSetFile)

刚开始编程并尝试学习OOP和ML。是的,同时学习这两个概念是一个巨大的挑战,也是一种享受。我遇到了这个错误,我不确定如何修复它

class DataInputOutput:
    def __init__(self, inputData, outputData):
        self.input = inputData
        self.output = outputData


class DTModel:
    def __init__(self, dataSetFile):
        dataset = arff.load(open(dataSetFile, 'r'))
        data = np.array(dataset['data'])

        inputs = data[:, :-1]  # All feature inputs except the last col
        outputs = data[:, -1]  # Last col of array which is the feature result

        trainInputs = inputs[:6000]  # First 6000 is training
        self.trainOutputs = outputs[:6000]
        self.trainingDataSet = dataset(inputData=trainInputs, outputData=self.trainOutputs)
输出:
self.trainingDataSet=self.dataset(inputData=trainInputs,outputData=self.trainOutputs)
TypeError:“dict”对象不可调用

我在读这本书,读的内容一模一样。我尝试过做出如下更改:

dataset(inputData=[trainInputs], outputData=[self.trainOutputs] # adding brackets, "dict not callable" still occurs
我尝试进行的其他更改会导致Pycharm错误“未解析引用”。例如:

= [dataset[inputData(trainInputs)] .... # inputData unresolved reference
我尝试的任何其他更改,Pycharm都会突出显示整个线条。可能我编辑了错误的行,应该在
数据集
数据
中进行更改

完全回溯:

Traceback (most recent call last):
File "./train1.py", line 81, in <module>
loaddata = DTModel("mydataset.arff")
File "./train1.py", line 31, in __init__
self.trainingDataSet = dataset(inputData=trainInputs, 
outputData=self.trainOutputs)
TypeError: 'dict' object is not callable
回溯(最近一次呼叫最后一次):
文件“/train1.py”,第81行,在
loaddata=DTModel(“mydataset.arff”)
文件“/train1.py”,第31行,在__
self.trainingDataSet=dataset(inputData=trainInputs,
outputData=自身(列车输出)
TypeError:“dict”对象不可调用

您抱怨将
dict
分配给数据集,然后尝试

self.trainingDataSet = dataset( ... )
生成dict不可调用的诊断。 Carcigenicate很友好地解释说,您可能想调用此构造函数:

self.trainingDataSet = DataInputOutput( ... )

dataset
是一个字典。你把它当作
DataInputOutput
的构造函数来调用的目的是什么?编写
数据集(inputData=trainInputs,outputData=self.trainOutputs)
你想做什么?当发布一个关于产生异常的代码的问题时,总是包括完整的回溯-复制并粘贴它,然后将其格式化为代码(选择它并键入
ctrl-k
),我不知道你的最终目标是什么,但似乎您想要
self.trainingDataSet=DataInputOutput(inputData=trainInputs,outputData=self.trainOutputs)
@Carcigenicate我的目的是在稍后的另一个类中使用
DataInputOutput
,该类将提供各种类型的度量,如训练精度、图形绘制、,等等@JohnSmith那么请看我最后的评论。这好像是个打字错误。