我需要根据索引将一些从列表中取出的单词放入矩阵中。 我的代码如下:
for i in range(no_of_lines):
for j in range(no_of_lines):
cuv_matrix[i][j] = cuv_list[mat_index[i][j]]
cuv_list是单词列表,mat_index包含与cuv_list中的索引相对应的索引
cuv_matrix实际输出为:
[['\x88' 'M' '\x93' ..., '6' '4' '1']
['2' '8' '3' ..., '0' '1' '6']
['0' '3' '2' ..., '.' '0' '0']
...,
['\xff' '\xff' '\xff' ..., '' '0' '.']
['0' '' '0' ..., '' '0' '.']
['0' '' '0' ..., '0' '.' '0']]
我宣称cuv_matrix的方式:
cuv_matrix = numpy.chararray((no_of_lines, no_of_lines))
我做错了什么,如何让矩阵的每个元素成为一个单词,就像这样?
预期产出:
[[movie film ..., actor]
... ...
character seen ..., director]]
稍后,我需要使用它们的坐标访问矩阵中的单词。
提前致谢!
答案 0 :(得分:0)
如果我理解正确,cuv_list只是一个列表,对吗?
所以,你需要一个外部计数器。
k = 0
for i in range(no_of_lines):
for j in range(no_of_lines):
cuv_matrix[i][j] = cuv_list[k]
k += 1
再次查看您的问题,似乎您可能还想要一个字典来保存信息:
cuv_mat = {}
k = 0
for i in range(no_of_lines):
for j in range(no_of_lines):
cuv_matrix[i][j] = cuv_list[k]
cuv_mat[cuv_list[k]] = (i,j)
k += 1
或者,如果您想将坐标信息与原始列表保持在一起并且可能有重复项:
cuv_mat_locations = []
k = 0
for i in range(no_of_lines):
for j in range(no_of_lines):
cuv_matrix[i][j] = cuv_list[k]
cuv_mat_locations.append([cuv_list[k], [i,j]])
k += 1