我初始化了三个numpy数组,因为我需要将一些随机数据提供给算法。
我的第二个数组大约有一百倍的值,大约需要一百倍的时间。
第三种,由于某种原因,花费的时间几乎是第二次的1800倍。
nparray = np.random.randint(0, 256, (1024, 800, 3)) #0.03125357627868652
nparray = np.random.randint(0, 256, (100, 1024, 800, 3) #2.9687747955322266
nparray = np.random.randint(0, 256, (10, 100, 1024, 800, 3)) #5339.585757017136
答案 0 :(得分:2)
假设numpy对这些数组使用dtype('int64')
,即每个元素8个字节:
如果你有一台相当普通的机器,第一种和第二种情况可能完全在RAM中工作。第三个阵列非常庞大,几乎肯定需要将数据交换到磁盘,这要慢得多。
您可以使用sys.getsizeof(obj)
检查Python中对象的大小。检查free
(Linux)或vm_stat
(macOS)可用的内存。