python - 如何在 python 中读取 .float 文件?
问题描述
我正在处理大脑 MRI 数据,它是 .float 数据。
你知道如何在 python 中使用它吗?
和
with open('[43x25520].float') as f:
read_data = f.read()
我得到:
Out[16]: Traceback (most recent call last):
File "<ipython-input-18-64e280c91de5>", line 2, in <module>
read_data = f.read()
File "/home/anja/anaconda3/lib/python3.7/codecs.py", line 322, in
decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position
2: invalid start byte
但我想使用文件中的浮点数。
解决方案
假设这些文件只是浮点流,并且它们足够小以适合内存,那么以下应该可以工作。
from struct import iter_unpack
with open('/path/to/file', 'rb') as dat:
# This will give you your data as a 1D array
data = list(iter_unpack('f', dat.read()))
这假定了本地字节序。您可以更改为'f'
,'<f'
或者'>f'
如果您需要指定不同的内容。见这里。
要将其转换为正确尺寸的矩阵,我会查看 numpy.
import numpy as np
matrix = np.array(data).reshape(43, 25520) # data from above
print(matrix[2,4523])
推荐阅读
- python - 多进程环境中的 cx_Oracle python delete 语句
- python - 从三个文本中计算单词
- reactjs - find 仅返回日期的第一个数据
- java - springboot中的调度器,用于spring批处理的大数据交替
- algorithm - 您如何计算具有多个来源的 Djikstra 热图?
- swift - 如果集合视图位于 UIScrollView 中,是否会重用 UICollectionViewCell?
- angular - Angular:当列表中没有数据时如何显示消息?
- javascript - vite 构建不会在 dist 文件夹中生成 javascript 文件
- javascript - 为什么我的 TextInput 字段在不同的屏幕上表现不同。在本机反应
- c++ - 找不到由“absl”提供的具有以下任何名称的包配置文件:abslConfig.cmake absl-config.cmake