Hi,

I'm sure I reinventing the wheel with the following code:
from numpy import *
from scipy import polyfit,stats

def f(x,y,z):
    return x+y+z
M=fromfunction(f,(2000,2000,10))

def foo(M):
    ramp=where(M<1000)[0]
    l=len(ramp)
    t=arange(l)
    if(l>1):
        return polyfit(t,ramp,1)[0]
    else:
        return 0

print apply_along_axis(foo,2,M)


In real life M is not the result of one fromfunction call but it does
not matter.
The basic idea is to compute the slope (and only the slope) along one
axis of 3D array.
Only the values below a given threshold should be taken into account.

The current code is ugly and slow.
How to remove the len and the if statement?
How to rewrite the code in a numpy oriented way?

Xavier

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to