An alternative is to use masked arrays which, depending on your application, can improve speed as you don't have to delete entries and/or create new ndarrays which are, AFAIK, pretty expensive operations in numpy.
An example:
import numpy as np
test = np.ones([1, 1001])
mask = np.zeros((1, 1001))
mask[:,4] = 1
result = np.ma.masked_array(test, mask)
The fifth element is now masked away and various operations can be performed on result, like the methods sum() or mean(). More info in the link I gave you. If you want to have a real ndarray, just call result.compressed(). However, that will perform the expensive work of allocating new memory and copying data to it.
Masked arrays might not be of benefit for this particular problem, but it is good to know that they exist.