TypeError:'type'对象没有'__getitem__'属性
我在尝试运行 rmakeprofile
命令时总是遇到一个错误。错误信息说“类型对象没有属性'__getitem__'”。
from array import array
from ROOT import gROOT, TCanvas, TProfile, TGraph
class Data(object):
def __init__(self, s):
self.p = TProfile()
self.data = []
for line in s:
if not line.startswith("#"): #Removes Commented lines
columns = line.split(',') #Splits into Columns
if columns:
datum = {
"threshold" : float(columns[1]),
"count" : float(columns[2]),
"rate" : float(columns[2]) /float(columns[0]),
"scantime" : float(columns[0])
}
self.data.append(datum)
print columns[1], float(columns[2])/float(columns[0])
def rmakeprofile(self, data, xval, yval, noBins):
self.a = array('d')
for datum in data:
self.a.append(float(datum[xval]))
self.p = TProfile('p','',noBins,min(self.a),max(self.a))
for datum in data:
self.p.Fill(datum[xval],datum[yval])
return self.p
这是错误的详细信息:
p = d.rmakeprofile(data,"threshold","rate",13)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "ray.py", line 27, in rmakeprofile
self.a = array('d')
TypeError: 'type' object has no attribute '__getitem__'
1 个回答
-1
试试用下面这些替换方法。
import numpy as np
self.a = np.asarray(['d'])
或者这个也可以用
import numpy as np
self.a = np.asarray('d')