查找多个.npz文件的最大形状

时间:2016-10-13 14:41:14

标签: python numpy

我有许多形状可能不同的.npz文件,我想找到哪个文件有大号形状。 npzs里面有2个数组,我正在寻找第二个中最大的数组。以下代码段有效,但返回形状所需的时间比预期的要长。这是实现这一目标的最有效方式吗?我担心缩放,因为它目前需要几秒钟来找到最大形状[1]而我只是循环通过4个数组

frameMax =0 
for f in npzs:
    d = np.load(f,mmap_mode='r')
    if d['arr_0'].shape[1]>frameMax:
        frameMax = d['arr_0'].shape[1]
    d=None

1 个答案:

答案 0 :(得分:1)

请记住I / O操作可能相对较慢。也就是说,您可以使用将在max时间内运行的内置O(n)来减少查找最大值的逻辑,并且无需您执行的分配:

frameMax = max([np.load(f,mmap_mode='r')['arr_0'].shape[1] for f in npzs])