You can convert the raster to a numpy array, flatten and sort the array, then determine the percentiles based on the flattened array's size. It would look something like this:
def firstPercentile(array):
#remove no data values, in this case zeroes, returning a flattened array
print 'removing no data values and flattening array.....'
flatArray = array[array != 0.0]
print 'sorting array....'
flatArray = np.sort(flatArray)
#report some summary stats
print 'min = ', np.min(flatArray)
print 'median = ', flatArray[int(np.size(flatArray) * 0.50)]
print 'max = ', np.max(flatArray)
firstPercentile = flatArray[int(np.size(flatArray) * 0.01)]
print '1st percentile = ', firstPercentile
Chris