为什么嵌套字典会减慢 numpy 保存速度?

Xingdong

假设我们有以下代码

import numpy as np

D = []
for _ in range(200):
   d = []
   for _ in range(300):
      d.append({'a': np.random.randn(64, 64, 3), 'b': np.random.randn(64, 64, 3)})
   D.append(d)

np.save('data', D)

保存这些数据需要很长时间。代码有问题,还是因为字典对象?

- - - - - - - - - - - -更新 - - - - - - - - - - - - - ——

通过将字典放在外面,即使数据大小相同,它也快得多。所以看起来是字典减慢了这个过程。有什么潜在的原因吗?

IE

import numpy as np

D1 = []
D2 = []
for _ in range(200):
   d1 = []
   d2 = []
   for _ in range(300):
      d1.append(np.random.randn(64, 64, 3))
      d2.append(np.random.randn(64, 64, 3))
   D1.append(d1)
   D2.append(d2)

np.save('d1', D1)
np.save('d2', D2)
约翰·兹温克

这是执行类似操作的代码,但以高效的矢量化方式执行,没有慢速for循环:

np.savez('data',
    a=np.random.randn(200, 300, 64, 64, 3),
    b=np.random.randn(200, 300, 64, 64, 3))

输出格式略有不同——它更紧凑,读回效率更高。

请注意,这几乎是 12 GB 的数据,因此生成随机数并将它们写入磁盘当然需要一段时间。如果你的真实数据的熵比随机数低,你可以考虑使用savez_compressed()启用压缩和节省一些磁盘空间(以保存和加载时的CPU时间为代价)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将结果保存在一个目录中时,为什么会减慢模拟速度?

来自分类Dev

为什么异步会减慢独立的后续代码的速度?

来自分类Dev

为什么DATEADD会减慢SQL查询的速度?

来自分类Dev

为什么DATEADD会减慢SQL查询的速度?

来自分类Dev

为什么lxsession-logout会减慢X窗口系统的速度?

来自分类Dev

为什么移动缓冲区指针会减慢读取速度(C编程语言)?

来自分类Dev

为什么HDD活动会减慢整个系统的速度(在Windows 7上)?

来自分类Dev

为什么lxsession-logout会减慢X窗口系统的速度?

来自分类Dev

为什么添加并行 for 循环会减慢单线程循环的速度?

来自分类Dev

Postgres:为什么添加索引会减慢正则表达式查询的速度?

来自分类Dev

为什么numpy向量化不能提高我的代码速度

来自分类Dev

什么会减慢Steam和Origin的下载速度?

来自分类Dev

什么会减慢Steam和Origin的下载速度?

来自分类Dev

为什么jax.numpy.dot()在CPU上的运行速度比numpy.dot()更慢?

来自分类Dev

eval()正在减慢其他代码的速度,为什么呢?

来自分类Dev

使用NumPy数据类型的Python字典查找速度

来自分类Dev

嵌套循环会减慢程序速度。我怎样才能使其更快?

来自分类Dev

为什么numpy.power比内联速度慢60倍?

来自分类Dev

为什么在NumPy中填充FFT会使运行速度慢得多?

来自分类Dev

NOLOCK提示会减慢操作速度吗?

来自分类Dev

HttpWebRequest可能会减慢网站速度

来自分类Dev

从IdentityDbContext <T>继承会减慢测试速度

来自分类Dev

Linux磁盘访问会减慢系统速度

来自分类Dev

通道会减慢读取速度吗?

来自分类Dev

ORDER BY子句会减慢查询速度吗?

来自分类Dev

使用多线程时,有什么会减慢我的程序的速度?

来自分类Dev

为什么将数据写入磁盘的速度与将其保存在内存中的速度一样快?

来自分类Dev

使用字典替换NumPy数组中的值会产生模棱两可的结果,为什么呢?

来自分类Dev

使用numpy.savez()保存标头信息的字典

Related 相关文章

  1. 1

    将结果保存在一个目录中时,为什么会减慢模拟速度?

  2. 2

    为什么异步会减慢独立的后续代码的速度?

  3. 3

    为什么DATEADD会减慢SQL查询的速度?

  4. 4

    为什么DATEADD会减慢SQL查询的速度?

  5. 5

    为什么lxsession-logout会减慢X窗口系统的速度?

  6. 6

    为什么移动缓冲区指针会减慢读取速度(C编程语言)?

  7. 7

    为什么HDD活动会减慢整个系统的速度(在Windows 7上)?

  8. 8

    为什么lxsession-logout会减慢X窗口系统的速度?

  9. 9

    为什么添加并行 for 循环会减慢单线程循环的速度?

  10. 10

    Postgres:为什么添加索引会减慢正则表达式查询的速度?

  11. 11

    为什么numpy向量化不能提高我的代码速度

  12. 12

    什么会减慢Steam和Origin的下载速度?

  13. 13

    什么会减慢Steam和Origin的下载速度?

  14. 14

    为什么jax.numpy.dot()在CPU上的运行速度比numpy.dot()更慢?

  15. 15

    eval()正在减慢其他代码的速度,为什么呢?

  16. 16

    使用NumPy数据类型的Python字典查找速度

  17. 17

    嵌套循环会减慢程序速度。我怎样才能使其更快?

  18. 18

    为什么numpy.power比内联速度慢60倍?

  19. 19

    为什么在NumPy中填充FFT会使运行速度慢得多?

  20. 20

    NOLOCK提示会减慢操作速度吗?

  21. 21

    HttpWebRequest可能会减慢网站速度

  22. 22

    从IdentityDbContext <T>继承会减慢测试速度

  23. 23

    Linux磁盘访问会减慢系统速度

  24. 24

    通道会减慢读取速度吗?

  25. 25

    ORDER BY子句会减慢查询速度吗?

  26. 26

    使用多线程时,有什么会减慢我的程序的速度?

  27. 27

    为什么将数据写入磁盘的速度与将其保存在内存中的速度一样快?

  28. 28

    使用字典替换NumPy数组中的值会产生模棱两可的结果,为什么呢?

  29. 29

    使用numpy.savez()保存标头信息的字典

热门标签

归档