如何获取矩阵的特定行和该行的所有列?用Python

如何获取矩阵的特定行和该行的所有列?用Python,python,matrix,bit,Python,Matrix,Bit,我有一个位为B[]的向量和一个矩阵NxN。我想得到矩阵的所有行,其中B[]向量中的位是1。例如: 循环的基本功能: b = [1,0,1,1] Matrix = [['a','b','c','d'],['e','f','g','h'],['i','j','k','l'],['m','n','o','p']] result_matrix = [] for i in range(len(b)): if b[i] == 1: result_matrix.append(Matr

我有一个位为B[]的向量和一个矩阵NxN。我想得到矩阵的所有行,其中B[]向量中的位是1。例如:

循环的基本功能:

b = [1,0,1,1]
Matrix = [['a','b','c','d'],['e','f','g','h'],['i','j','k','l'],['m','n','o','p']]

result_matrix = []
for i in range(len(b)):
    if b[i] == 1:
        result_matrix.append(Matrix[i])
print (result_matrix)
什么是平等列表理解:

result_matrix = [Matrix[i] for i in range(len(b)) if b[i]]
print (result_matrix)

出于各种原因,我建议使用numpy阵列。您可以使用真正的多维数组。您将能够使用以下选项

要选择矩阵的特定行,可以使用:

b(4,:)
result_matrix = Matrix[b[:,0] == 1,:]
如果条件是返回逻辑列表的函数,则可以显示满足条件的所有行:

b(condition(),:)
在您的情况下,您可以使用:

b(4,:)
result_matrix = Matrix[b[:,0] == 1,:]

你的welcom,我很高兴我帮了你:)否则别忘了投票或接受答案:)你能用你在代码中使用的矩阵编辑你的帖子吗