kek*_*coh 4 python arrays numpy
在我的情况,我收到了numpy.ndarray作为unit8大小4 * n代表的原始二进制数据float32的实体。所以4个项目一起代表一个float32。为了获取float32数字,我目前将uint8原始数据转换为二进制字符串,然后从该字符串中读取float32值。
np.fromstring(raw_unit8_data.tostring(), dtype='<f4')
Run Code Online (Sandbox Code Playgroud)
是否有可能直接进行这种转换而无需uint8先将数据转换为字符串?
您可以使用viewNumPy 将原始数据重新解释为适当的数据类型。例如:
>>> raw_unit8_data = np.array([32, 14, 135, 241], dtype='uint8')
>>> raw_unit8_data.view('<f4')
array([ -1.33752168e+30], dtype=float32)
Run Code Online (Sandbox Code Playgroud)
这具有不使用任何临时数组或缓冲区的优点(我们只是改变了读取内存的方式)并提供与当前方法相同的值:
>>> np.fromstring(raw_unit8_data.tostring(), dtype='<f4')
array([ -1.33752168e+30], dtype=float32)
Run Code Online (Sandbox Code Playgroud)