Python Forum
Which method for arrays is faster ?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Which method for arrays is faster ?
#1
Hello everyone,
I hope you are well.

I wonder which of those two methods for dealing with arrays would be faster in python:
method 1: define array at the beginning of the code as np.zeros for example, then fill the elements x[1] , x[2] ... etc, within the code.
method 2: define array at the beginning of the code as empty array: x = [] , and then fill the elements x[1] , x[2] ... etc, within the code.

Thanks
Reply
#2
You should time it.
import timeit

test_setup = "import numpy as np"
test_code = '''
x = np.zeros(100000)
for i in range(len(x)):
    x[i] = i
'''
print('np.zeros', timeit.timeit(stmt=test_code, setup=test_setup, number=1000))

test_setup = ""
test_code = '''
x = []
for i in range(100000):
    x.append(i)
'''
print('append', timeit.timeit(stmt=test_code, setup=test_setup, number=1000))
Reply
#3
Scenario 1:
You make a list and fill it with data. Task done.

Scenario 2:
You've to repeat this one million times.

If scenario 2 is the case, then preallocate the numpy.array once.
Then you can work with the same list one million times without creating new lists/arrays.
Of course, this depends on the algorithm you're using.

Allocating memory is slow.
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020