HYRY wrote:

Thanks, by your hint, I change type(data) to type(data[0]), and I get

<type 'float'>

<type 'numpy.float64'>

So, calculate with float is about 5x faster numpy.float64.

approx..

numpy funcs all upcast int to int32 and float to float32 and

int32/float to float32 etc. This is probably ill behavior.

float32 arrays should only arise if numpy.array(l,dtype=numpy.float32)

In your example you'll best go to numpy/scipy types very early

(not mixing with the python array type in addition) and do the

array computations with scipy

left = [abs(x-mean) for x in left]

->

data = scipy.array(f.readframes(t[3]),"h")

...

left = abs(left-mean)

code the test(data) similar - see also scipy.signal.lfilter etc.

and cast types down to Python types late like float(mynumfloat) ...

The type magic and speed loss will and pickle problems will

probably only disapear, when float & int are handled as extra

(more conservative) types in numpy - with numpy scalar types only

on request. Currently numpy uses Python.

Robert