[Numpy-discussion] confused with apply_along_axis()

Joris De Ridder joris at ster.kuleuven.be
Wed Feb 7 09:11:53 EST 2007


Hi,

I'm confused by the output of apply_along_axis() in the following very simple 
example:

In [93]: a = arange(12.).reshape(2,2,3)
In [95]: a
Out[95]:
array([[[  0.,   1.,   2.],
        [  3.,   4.,   5.]],
       [[  6.,   7.,   8.],
        [  9.,  10.,  11.]]])
In [96]: def myfunc(b):
   ....:     print "slice:", b, "  middle value:", b[1]
   ....:     return b[1]
   ....:
In [97]: apply_along_axis(myfunc,2,a)
slice: [ 0.  1.  2.]   middle value: 1.0
slice: [ 3.  4.  5.]   middle value: 4.0
slice: [ 6.  7.  8.]   middle value: 7.0
slice: [  9.  10.  11.]   middle value: 10.0
Out[97]:
array([[  7.,   7.],
       [ 10.,  10.]])


I expected as output
array([[  1.,   4.],
       [ 7.,  10.]])

Why is this not the case? How exactly does apply_along_axis() use the output 
of myfunc() to produce its result?

Cheers,
J.

P.S. I'm working with Python 2.5 & Numpy 1.0

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm




More information about the NumPy-Discussion mailing list