从矩阵到单词列表

ADJ*_*ADJ 5 python string matrix

我有一个NumPy r by c矩阵的零和一.我有一个c字列表.我想返回一个长度为r的列表,其中每个元素是一个以空格分隔的字符串,仅由那些与该矩阵行中的1匹配的单词组成.这是一个例子:

matrix=np.array([[0,0,1],[1,0,1],[0,1,1]])
words=['python','c++','.net']

output=[]
for row in range(matrix.shape[0]):
    output.append( ' '.join([words[i]  for i in range(matrix.shape[1]) if matrix[row,i]==1]))
Run Code Online (Sandbox Code Playgroud)

什么是Pythonic完成此任务的方法?

谢谢,

G

Cla*_*diu 3

看哪:

>>> [' '.join(word for include_word, word in zip(row, words) if include_word) 
     for row in matrix]
['.net', 'python .net', 'c++ .net']
Run Code Online (Sandbox Code Playgroud)

这很有趣=)。