首页 > 解决方案 > 如何将布尔数组转换为矩阵?

问题描述

我是初学者,我想知道是否可以在 NumPy 中将布尔数组转换为矩阵?

例如,我们有一个a像这样的布尔数组:

a = [[False],
     [True],
     [True],
     [False],
     [True]]

并且,我们将其转换为以下矩阵:

m = [[0, 0, 0, 0, 0]
     [0, 1, 0, 0, 0]
     [0, 0, 1, 0, 0]
     [0, 0, 0, 0, 0]
     [0, 0, 0, 0, 1]]

我的意思是数组是矩阵的对角线。

标签: pythonarraysnumpymatrix

解决方案


您可以使用np.diagflatwhich创建一个二维数组,将扁平输入作为对角线

np.diagflat(np.array(a, dtype=int))

#[[0 0 0 0 0]
# [0 1 0 0 0]
# [0 0 1 0 0]
# [0 0 0 0 0]
# [0 0 0 0 1]]

工作示例


推荐阅读