擅长:python、mysql、java
<p>不需要将布尔数组转换为本机的<code>int</code>数据类型(x86趶64上为64位)。可以通过将布尔数组视为<code>np.uint8</code>来避免复制布尔数组,它也为每个元素使用一个字节:</p>
<pre><code>packed = np.packbits(db_bool.view(np.uint8))
unpacked = np.unpackbits(packed)[:db_bool.size].reshape(db_bool.shape).view(np.bool)
print(np.all(db_bool == unpacked))
# True
</code></pre>
<p>另外,<code>np.packbits</code>现在应该可以直接在布尔数组上工作,从一年前的<a href="https://github.com/numpy/numpy/commit/24effb6b7a075e23d85ea0b60ed8a607fe218c14" rel="noreferrer">this commit</a>开始(numpyv1.10.0及更新版本)。在</p>