【发布时间】:2014-05-09 16:05:24
【问题描述】:
我正在处理 .h5 文件,经验不足。
在我编写的脚本中,我从 .h5 文件中加载数据。结果数组的形状是:[3584, 3584, 75]。这里的值3584 表示像素数,75 表示时间帧数。加载数据和打印形状需要 180 毫秒。我使用os.times() 获得这个时间。
如果我现在想查看特定时间范围内的数据,我会使用以下代码:
data_1 = data[:, :, 1]
切片占用大量时间(1.76 秒)。我知道我的 2D 数组很大,但有时我想循环一段时间,因为我在 for 循环中执行这个切片需要很长时间。
是否有更有效/更省时的方式来分割时间框架或处理此类数据?
谢谢!
【问题讨论】:
-
该数组实际上是在这 180 毫秒内加载的,还是只是一个模仿在文件顶部构造的数组的对象?如果每个像素 1 字节,没有压缩,没有开销,文件将占用将近 1GB 的大小。大多数 SSD 磁盘都达不到那种速度,大约是 5.4GB/秒。换句话说,切片操作是否实际上也在读取文件?
-
嗯,这很好。完全忘记了。
标签: python arrays optimization h5py