I am trying to convert an array into a percent change array. it is simple, but I do not know why I am getting a zero division error. I tried putting
from __future__ import division
at the top of my file, but no dice.
my code:
def convert(anarr):
x = 1
while(x < len(anarr)):
anarr[x] = (anarr[1] - anarr[x])/anarr[1]
x += 1
print anarr
main:
>>>
>>>
>>> myarr = [20130101.0,34.75,34.66,34.6,34.6,34.61,34.65,34.69]
>>> convert(myarr)
>>> Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
convert(myarr)
File "C:\Users\viral\Desktop\python\mapping.py", line 38, in convert
anarr[x] = (anarr[1] - anarr[x])/anarr[1]
ZeroDivisionError: float division by zero
Since you are modifying the array as you go, one of the elements is becoming 0 which causes the error. There are consecutive 34.6s in the array which have a percentage change of 0. Put the changes to a new array, and copy later if you want.