通过重新解释原始字节从一种类型的 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 数组转换为另一种类型的主要内容,如果未能解决你的问题,请参考以下文章

2020年六大机器学习Python库!

Numpy教程

Python numpy'预期无符号字节数据类型的输入数组'

网络上的 C# 列表与字节数组效率

在 C# 中使用非原始类型重新创建 C++ 联合类型时出现对齐错误

在 Numpy 数组上使用 Pycuda 的 GPU 数组乘法