The problem you're experiencing comes from the fact that array.append, as implemented in NumPy, actually creates a new copy of the array every time called, which must allocated in the memory completely new, especially if called often and on large arrays this should definitely be avoided. There are two solutions to solve this issue:

1. If you don't know how big the arrays are going to be, you can use python lists during the processing and then convert them to NumPy arrays afterwards. Python lists alter in memory and are therefore much more performant for using append. The downside of this is that you have larger memory usage, as you can't use NumPys more efficient data types.

2. If you know how big the arrays are going to be you can preallocate the whole array, by using the zeros method of NumPy and create sort of an empty array which you then add the values to as you progress. This may requires changing of your processing algorithm and therefore could be slower, but it can be way more memory efficient.


Check memory

- boot from live CD or USB. Press and hold any key while your computer is booting.
- Press 'F6', a language menu will pop up. You will then be presented with the option menu.
- If you select Test Memory you will be presented with another menu that will allow you to select which test(s) you want to run.

operating system not working properly

After receiving different input/output errors during the installation of different operating systems i would like to check if the hardware works properly.
Subscribe to memory