如何在numpy多维数组中插入单词



我需要在矩阵中放入一些从列表中取出的单词,基于它们的索引。我的代码如下:

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]]

之后,我需要从矩阵中使用它们的坐标访问单词。

提前感谢!

如果我没理解错的话,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

再看看你的问题,似乎你还需要一个字典来保存info:

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

相关内容

  • 没有找到相关文章

最新更新