Your condition for division by zero is (data2+data3)==0
, so the following should work:
mask = numpy.not_equal((data2+data3), 0)
ndvi = numpy.choose(mask,(-99, (data3-data2)/(data2 + data3)))
Another way to do this is:
mask = (data2+data3)==0
ndvi = np.zeros(data2.shape)
ndvi[ mask ] = -99
ndvi[ ~mask ] = ((data3-data2)/(data2+data3))[ ~mask ]