【问题标题】:How to convert a boolean array into a matrix?如何将布尔数组转换为矩阵?
【发布时间】:2020-12-07 00:14:38
【问题描述】:

我是初学者,想知道在 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]]

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

【问题讨论】:

    标签: python arrays numpy matrix


    【解决方案1】:

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

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

    Working example

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多