假设我有以下数组:
import numpy as np
I = np.array([0, 1, 2, 3, 15, 16, 32, 64, 128])
Run Code Online (Sandbox Code Playgroud)
我想将数组中的每个项目转换为其二进制表示形式。
期望的输出:
[[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]]
Run Code Online (Sandbox Code Playgroud)
最直接的方法是什么?谢谢!
有很多方法可以实现这一点。
一种方法是:
# 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])
Run Code Online (Sandbox Code Playgroud)
您还可以这样做:
I = np.array([0, 1, 2, 3, 15, 16, 32, 64, 128], dtype=np.uint8)
print(np.unpackbits(I[:, np.newaxis], axis=1))
Run Code Online (Sandbox Code Playgroud)
我个人推荐第一种方法!干杯!
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1031 次  |  
        
|   最近记录:  |