我想知道是否有一个更有效的方法来做下面的不使用循环。
我有一个numpy数组,其形状为(i, x, y, z)
。本质上,我有(x, y, z)
形状的i
元素。我想将每个元素写入一个单独的文件,这样我就有了i
文件,每个文件都有来自单个元素的数据。
在我的例子中,每个元素都是一个图像,但我确信解决方案可以是格式不可知的。
我正在循环遍历每个i
元素,并一次写出一个元素。
随着i
变得越来越大,这将花费越来越长的时间。有没有更好的方法或有用的库可以使这更有效?
更新
我尝试了使用并发多处理的建议。先尝试线程池,然后再尝试进程池。它的代码更简单,但完成时间要慢4倍。
在这种情况下i
大约为10000,而x
和y
大约为750
1条答案
按热度按时间7z5jn7bk1#
这听起来非常适合多处理,因为不同的元素需要单独处理,并且可以单独保存到磁盘。
Python有一个非常有用的包,叫做
multiprocessing
,里面有各种池、处理和其他选项。下面是一个简单的(并有注解记录的)用法示例: