【发布时间】:2019-06-05 22:38:10
【问题描述】:
我通过计算 100 个条目中的值“:READ”,从文本文件创建了一个包含 100 列的矩阵。即:vector[0][0] = 文件中前 100 个条目中的 :READ 数量,vector[0][1]= 文件中接下来 100 个条目中的 :READ 数量,依此类推,使用以下代码
`
for i in range(start,len(df1),100):
df2=df1.iloc[start:end,]
count=df2.str.count(":READ").sum()
vector[p].append(count)
filewriter.writerow([start, count])
start=end
end=end+100
if(q<window):
q=q+1
else:
q=0
p=p+1
vector.append([])
当我用它来计算特征值时,
e_vals, e_vecs = LA.eig(vector)
它给出了以下错误
ValueError:不支持对象数组
可以做什么?我不擅长python编码。
【问题讨论】:
-
修复缩进 - 这对 python 代码很重要。-
-
Vector 显然不是一个 numpy 二维数组(否则你不能附加到一个向量行)。您没有显示
vector的实际创建;也许你应该。它应该类似于vector = np.empty((100, 100), dtype=np.float),假设它是一个方阵。 -
我只使用了 vector = [].. 因为行数是动态的。 (取决于输入文件的大小)
-
eig尝试从您的列表中创建一个数组。显然结果是一个对象 dtype。这可能是因为vector的子列表长度不同。尝试np.array(vector)并检查结果。 -
我用过 {vector1-NP.array(vector)} 。当我打印 {vector1.shape} 它给了 44 。不是二维数组的形状。