我有以下问题:
我有一本字典,其中每个K,V如下:
k = 1 String
v =以下列方式嵌套列表,
里面的V是多个列表,每个A列表里面都有B个列表,每个B列表里面都有C个条目。
最后,我想做一些平均值和标准偏差的计算,所以我想创建一个字典,其中键是相同的,v如下:
一个A行乘B列的矩阵,其中矩阵中的每个条目都是列表B.这样我就能以这样的方式排列数据,即我可以从矩阵的每一列中删除特定值来做一些计算
这是我的推理,所以我尝试了以下内容:
#Initialzing the new dictionary
matrix_dictionary = {}
for k,v in overall_dictionary.iteritems():
num_rows = len(v) #Number of rows in desired matrix
for i in v:
width = len(i) #Number of columns in desired matrix
#Initializing the matrix
data_matrix = [[] for i in xrange(0,width) for j in xrange(0,num_rows)]
for y in xrange(0,height)#For row in row
for element in v: #For each list A in v
counter = 0; #one of indices to add element to specific spot in matrix
for i in element:#for B list in A
data_matrix[y][counter] = i #Trying to add list B inside matrix
counter = counter + 1;
matrix_dictionary[k] = data_matrix #Adding key value pair to dic
解释问题的不同尝试
对于字典中的每个k,我有一个3D v
例如,v由100个列表(A)组成每个列表中都有50个列表(B)
每个列表B都有一个列表C,其中C的两个索引是感兴趣的
我想创建一个巨大的表,它是A行B列,所有C列表都在
之内示例:第一行,第一列有C1,第一行第二列有C2,等等......
我希望矩阵成为字典中的值
我看到了以下错误
1)矩阵的索引错误
2)以下内容可以在外面进行
for k, v in ovarall_dictionary.iteritems():
for A in v:
print(A) #Prints the list A containing a bunch of lists B
for B in A:
print(B) #Prints each B list
但是,以下不起作用,我的索引超出了列表范围,为什么?
z = v[0]
print(z)
最终目标
对于每个k,v in new matrix dictionary
对于矩阵中的每个列以及该列的每个单元格内 得到两个指数X和Y
得到所有X的平均值,得到所有Y的平均值
创建一个新字典,其中k为字符串,结果列表为值对
需要帮助
我已经解释过我在v内有一个3D数组:A [B [C]]]
我想创建一个AxB矩阵,其中不同的C值可以在矩阵中轻松调用
答案 0 :(得分:0)
好消息是:你已经拥有了你想要的字典!列表 是一个2D矩阵。
坏消息:你不清楚自己会遇到什么样的错误,以及它们会在哪里出现。更多细节将有助于人们提出解决方案。
与此同时,对您的代码进行了一些评论(尽管我已经有了矩阵,但我认为没有必要):
不是遍历所有行,每次更新宽度,只需执行一次,如:
width = len(v[0]) #This assumes all rows have same number of cols
不需要分号。 (并不是说他们有什么问题!)
代码中的缩进不清楚。确保一切都在正确的循环中。
你应该拥有'元素'不是'对于元素a'。
我认为反击会使事情复杂化。尝试使用'枚举'或类似的东西。