我有以下numpy的陣列如何打印numpy的數組中的二進制表示的模式
a = np.array([[1,2,3,4 ,11, 12,13,14,21,22,23,24,31,32,33,34 ]], dtype=uint8)
當我打印AI正在以下輸出
[[ 1 2 3 4 11 12 13 14 21 22 23 24 31 32 33 34]]
我怎樣才能輸出二進制表示?
例如
[[ 00000001 00000010 00000011 00000100 ...]]
我有以下numpy的陣列如何打印numpy的數組中的二進制表示的模式
a = np.array([[1,2,3,4 ,11, 12,13,14,21,22,23,24,31,32,33,34 ]], dtype=uint8)
當我打印AI正在以下輸出
[[ 1 2 3 4 11 12 13 14 21 22 23 24 31 32 33 34]]
我怎樣才能輸出二進制表示?
例如
[[ 00000001 00000010 00000011 00000100 ...]]
試試這個。
np.array(map(bin, a.flatten())).reshape(a.shape)
這個怎麼樣?
a = np.array([[1,2,3,4 ,11, 12,13,14,21,22,23,24,31,32,33,34 ]], dtype=uint8)
print [bin(n) for n in a[0]]
使用numpy的unpackbits
,這也可以工作。
A=np.unpackbits(a, axis=0).T
print [''.join(map(str,a)) for a in A]
第一個解決方案正常工作。 – user3543783
第二個拋出「TypeError:參數2映射()必須支持迭代」 – user3543783
我認爲你的數組不是2d。在你的問題中,你使用了兩個括號'[[]]'。 – ysakamoto
這給了爲u需要
[bin(x)[2:].zfill(8) for x in a]
出把
['00000001', '00000010', '00000011']
這工作完美。謝謝..它正在花費類似的時間來使用矢量化。 – user3543783
請讓它打勾..和ote up :) –
這工作得很好,速度很快。謝謝 – user3543783
這是迄今爲止最快的解決方案 – user3543783