python - 如何将布尔数组转换为矩阵?
问题描述
我是初学者,我想知道是否可以在 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]]
我的意思是数组是矩阵的对角线。
解决方案
您可以使用np.diagflat
which创建一个二维数组,将扁平输入作为对角线:
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]]
推荐阅读
- teamcity - 使用参数触发构建
- c++ - 有没有更快的方法从无序集中删除和存储元素
- php - Laravel 5.7 中 Twilio 的通知区域被忽略
- angular - 如何提高包含复选框的 primeNg 表的性能
- docker-compose - 将 angular-cli 应用程序作为 docker 容器提供服务
- ruby-on-rails - 编辑文章作者
- python - 无法让 ttk.Progressbar 正确启动
- python - 计算 Dataframe 中所有列的唯一值组合
- visual-studio - Visual Studio 2017 OData 连接服务端点相对路径
- apache-kafka - 如何将 kafka 详细信息迁移到其他服务器?