user123
user123

Reputation: 69

Memory error with numpy. array

I get a memory error when using numpy.arange with large numbers. My code is as follows:

import numpy as np

list = np.arange(0, 10**15, 10**3)
profit_list = []

for diff in list:
    x = do_some_calculation
    profit_list.append(x)

What can be a replacement so I can avoid getting the memory error?

Upvotes: 0

Views: 811

Answers (1)

fuglede
fuglede

Reputation: 18221

If you replace list¹ with a generator, that is, you do

for diff in range(10**15, 10**3):
    x = do_some_calculation
    profit_list.append(x)

then that will no longer cause MemoryErrors as you no longer initiate the full list. In this world, though, profit_list will probably by causing issues instead, as you are trying to add 10^12 items to that. Again, you can probably get around that by not storing the values explicitly, but rather yield them as you need them, using generators.

¹: Side note: Don't use list as a variable name as it shadows a built-in.

Upvotes: 1

Related Questions