Starting off an IIR with plain averages to accelerate slow rise time A 1-term IIR can easily be started off with the first data point, instead of 0.
For data that's all > 0,
this ought to be better than starting off with y = 0 :

def update( x, t, a=0.1 ):  # data x (scalar or vector), t 0 1 2 ...
    global y  # or self.
    if t == 0:
        y = x
    else:
        y += a * (x - y)  # fraction `a` of the way towards x
    return y


It's also easy to start off with plain averages (FIR) for the first few data points,
then switch to IIR:

def update( x, t, a=0.1, naverage=10 ):
    if t &lt;= naverage:
        a_t = 1. / (t + 1)  # start off with plain averages, 1 1/2 1/3 ...
    else:
        a_t = a       # then IIR
    y += a_t * (x - y)


The goal here is to accelerate the slow rise time of y when a is small.
Is this reasonable ?
Are there less ad-hoc ways of doing this ?


Added 28 Nov, a plot showing the difference:
You are omitting the initial condition of the filter:

$$y(t)=\alpha x(t-1)+(1-\alpha)y(t-1)$$

which is 

$$y(0)=x(0)=x_0$$

which is implemented by correcting this line before the cycle:

if t == 1:
    y=a*x;


You dont need to switch anything. Only provide that value and an initial evaluation with that index, and you will not have a slow rise problem.

2016-11-22
The following image shows the result of putting the proper IC to the filter. In red there is the standard "zero" IC, while the green shows the correct IC. The $x(t)$ is a step periodic signal. Note that the IC is perfectly matched with the expected result. 



2016-11-23

Another depict for a biased Laplacian Noise, and different parameters for a linear filter, with IC settled as indicated. Note that regardless of the IC setting, all the signals are around the bias, which is the correct result.