通过重新解释原始字节从一种类型的 numpy 数组转换为另一种类型
Posted
技术标签:
【中文标题】通过重新解释原始字节从一种类型的 numpy 数组转换为另一种类型【英文标题】:converting from numpy array of one type to another by re-interpreting raw bytes 【发布时间】:2014-05-02 14:53:16 【问题描述】:有没有办法用 numpy 数组进行“reinterpret_cast”?这是一个例子:
>>> import numpy as np
>>> x=np.array([105,79,196,53,151,176,59,202,249,0,207,6], dtype=np.uint8)
>>> np.fromstring(x.tostring(),'<h')
array([ 20329, 13764, -20329, -13765, 249, 1743], dtype=int16)
我可以调用tostring()
,然后调用fromstring()
,将数组转换为原始字节,然后再转换回另一个数组。我只是想知道是否有办法让我跳过中间步骤。 (不是什么大问题,我只是想了解一下。)
【问题讨论】:
【参考方案1】:是的。当您 view 具有不同 dtype 的数组时,您正在根据不同的 dtype 重新解释基础数据(零和一)。
In [85]: x.view('<i2')
Out[85]: array([ 20329, 13764, -20329, -13765, 249, 1743], dtype=int16)
【讨论】:
以上是关于通过重新解释原始字节从一种类型的 numpy 数组转换为另一种类型的主要内容,如果未能解决你的问题,请参考以下文章
Python numpy'预期无符号字节数据类型的输入数组'