编辑: 我用字节而不是字符来表述这个问题。我正在对密文进行频率分析。
当我在字节列表上使用numpy.unique()
时,NULL字节b'\x00'
最终为空字符b''
。
以下最小示例
import numpy as np
byte_list = [b'\x00', b'1']
freq = {byte: count for (byte, count) in zip(*np.unique(byte_list, return_counts=True))}
freq
返回
{b'': 1, b'1': 1}
我希望
{b'\x00': 1, b'1': 1}
那是为什么?
Python版本3.7.4
。
numpy版本1.17.2
。
答案 0 :(得分:1)
如果这是您的预期输出:
{b'0': 2, b'1': 1, b'\\': 1, b'x': 1}
您忘记了(\)
变量中转义下一个字符的反斜杠bs
。在这种情况下,bs
将是:
bs = b'\\x001'