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

标签 python numpy

我有许多形状可能有所不同的 .npz 文件,我想找到哪个文件的形状最大。 npz 中有 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

最佳答案

请记住,I/O 操作可能相对较慢。也就是说,您可以使用内置 max 将查找最大值的逻辑减少到以下内容:它将在 O(n) 中运行时间,并消除了您所做的作业的需要:

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

关于python - 查找多个 .npz 文件的最大形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024118/

相关文章:

python - 绘制一个看起来像球体的球体

Python - 使用 RegEx 从字符串中提取模式

python - 了解 tf.scatter_nd_update : How to update column values?

python - 如果我使用动态类型,如何自动完成 python 代码

python - 如何获取PyQt5中QlistWidget中存在的所有项目

python - 绘制折线图时出错

Python 从正态分布生成随机麦克斯韦分布

python - numpy 数组切片,为什么有时是二维数组有时是一维数组

python - 将其中一个笔记本用作模块时如何在不同笔记本中使用 "sqlContext"(Pyspark)

python - Django 查询 : How to filter objects by todays day, 时间和 30 分钟后?