On 8/20/07, Geoffrey Zhu <[EMAIL PROTECTED]> wrote: > > Hi Everyone, > > I am wondering if there is an "extended" outer product. Take the > example in "Guide to Numpy." Instead of doing an multiplication, I > want to call a custom function for each pair. > > >>> print outer([1,2,3],[10,100,1000]) > > [[ 10 100 1000] > [ 20 200 2000] > [ 30 300 3000]] > > > So I want: > > [ > [f(1,10), f(1,100), f(1,1000)], > [f(2,10), f(2, 100), f(2, 1000)], > [f(3,10), f(3, 100), f(3,1000)] > ]
Maybe something like In [15]: f = lambda x,y : x*sin(y) In [16]: a = array([[f(i,j) for i in range(3)] for j in range(3)]) In [17]: a Out[17]: array([[ 0. , 0. , 0. ], [ 0. , 0.84147098, 1.68294197], [ 0. , 0.90929743, 1.81859485]]) I don't know if nested list comprehensions are faster than two nested loops, but at least they avoid array indexing. Chuck
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion