python - 如何使用 NumPy 将整数向量转换为二进制表示矩阵?
问题描述
假设我有以下数组:
import numpy as np
I = np.array([0, 1, 2, 3, 15, 16, 32, 64, 128])
我想将数组中的每个项目转换为其二进制表示。
期望的输出:
[[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 1 1]
[0 0 0 0 1 1 1 1]
[0 0 0 1 0 0 0 0]
[0 0 1 0 0 0 0 0]
[0 1 0 0 0 0 0 0]
[1 0 0 0 0 0 0 0]]
最直接的方法是什么?谢谢!
解决方案
有很多方法可以做到这一点。
一种方法:
# Your array
I = np.array([0, 1, 2, 3, 15, 16, 32, 64, 128])
B = ((I.reshape(-1,1) & (2**np.arange(8))) != 0).astype(int)
print(B[:,::-1])
你也可以这样做:
I = np.array([0, 1, 2, 3, 15, 16, 32, 64, 128], dtype=np.uint8)
print(np.unpackbits(I[:, np.newaxis], axis=1))
我个人会推荐第一种方法!干杯!
推荐阅读
- asp.net-mvc - 添加种子数据时出现以下错误::'No database provider has been configured for this DbContext
- laravel - Laravel 8 收益函数
- laravel - 使用 vuejs 几个小时不活动的 laravel sactum 后出现未经授权的错误
- java - 程序完成后将学生记录写入磁盘
- javascript - position:fixed 在 React JS 中的 div 的第二部分中不起作用
- swift - 将第二个视图控制器添加到单个窗口应用程序
- javascript - Webpack 抛出导入错误
- linux - find: '/proc/5110': 没有这样的文件或目录
- angular - Angular Google Maps 设置标记动画
- pine-script - 将脊椎脚本 (tradingview) 翻译成 mql 指标 (meta trader 4)