[Numpy-discussion] Numpy performance vs Matlab.

Sturla Molden sturla at molden.no
Fri Jan 9 10:46:43 EST 2009


> I simplified the code to focus only on "what I" need, rather to bother you
> with the full code.

def test():
    w = 3096
    h = 2048
    a = numpy.zeros((h,w), order='F')      #Normally loaded with real data
    b = numpy.zeros((h,w,3), order='F')

    w0 = slice(0,w-2)
    w1 = slice(1,w-1)
    w2 = slice(2,w)
    h0 = slice(0,h-2)
    h1 = slice(1,h-1)
    h2 = slice(2,h)

    p00, p10, p20 = [h0,w0], [h1,w0], [h2,w0]
    p01, p11, p21 = [h0,w1], [h1,w1], [h2,w1]
    p02, p12, p22 = [h0,w2], [h1,w2], [h2,w2]

    b[p11 + [1]] =  a[p11] + 1.23*a[p22]  \
                     - numpy.min([a[p11]-a[p00],
                                  a[p11]-a[p01],
                                  a[p11]-a[p02],
                                  a[p11]-a[p10],
                                  a[p11]-a[p12],
                                  a[p11]-a[p20],
                                  a[p11]-a[p21],
                                  a[p11]-a[p22]])  \
                   + 0.123*numpy.max([a[p11]-a[p00],
                                      a[p11]-a[p01],
                                      a[p11]-a[p02],
                                      a[p11]-a[p10],
                                      a[p11]-a[p12],
                                      a[p11]-a[p20],
                                      a[p11]-a[p21],
                                      a[p11]-a[p22]])


Does this work for you?






More information about the NumPy-Discussion mailing list