Re: [Numpy-discussion] einsum and broadcasting

2013-04-05 Thread Sebastian Berg
On Thu, 2013-04-04 at 16:56 +0300, Jaakko Luttinen wrote: I don't quite understand how einsum handles broadcasting. I get the following error, but I don't understand why: In [8]: import numpy as np In [9]: A = np.arange(12).reshape((4,3)) In [10]: B = np.arange(6).reshape((3,2)) In [11]:

[Numpy-discussion] einsum and broadcasting

2013-04-04 Thread Jaakko Luttinen
I don't quite understand how einsum handles broadcasting. I get the following error, but I don't understand why: In [8]: import numpy as np In [9]: A = np.arange(12).reshape((4,3)) In [10]: B = np.arange(6).reshape((3,2)) In [11]: np.einsum('ik,k...-i...', A, B)

Re: [Numpy-discussion] einsum slow vs (tensor)dot

2012-10-26 Thread George Nurser
On 25 October 2012 22:54, David Warde-Farley warde...@iro.umontreal.cawrote: On Wed, Oct 24, 2012 at 7:18 AM, George Nurser gnur...@gmail.com wrote: Hi, I was just looking at the einsum function. To me, it's a really elegant and clear way of doing array operations, which is the core

Re: [Numpy-discussion] einsum slow vs (tensor)dot

2012-10-25 Thread David Warde-Farley
On Wed, Oct 24, 2012 at 7:18 AM, George Nurser gnur...@gmail.com wrote: Hi, I was just looking at the einsum function. To me, it's a really elegant and clear way of doing array operations, which is the core of what numpy is about. It removes the need to remember a range of functions, some of

[Numpy-discussion] einsum slow vs (tensor)dot

2012-10-24 Thread George Nurser
Hi, I was just looking at the einsum function. To me, it's a really elegant and clear way of doing array operations, which is the core of what numpy is about. It removes the need to remember a range of functions, some of which I find tricky (e.g. tile). Unfortunately the present implementation

[Numpy-discussion] einsum evaluation order

2012-01-24 Thread Søren Gammelmark
Dear all, I was just looking into numpy.einsum and encountered an issue which might be worth pointing out in the documentation. Let us say you wish to evaluate something like this (repeated indices a summed) D[alpha, alphaprime] = A[alpha, beta, sigma] * B[alphaprime, betaprime, sigma] *

Re: [Numpy-discussion] einsum evaluation order

2012-01-24 Thread Mark Wiebe
On Tue, Jan 24, 2012 at 6:32 AM, Søren Gammelmark gammelm...@gmail.comwrote: Dear all, I was just looking into numpy.einsum and encountered an issue which might be worth pointing out in the documentation. Let us say you wish to evaluate something like this (repeated indices a summed)

[Numpy-discussion] einsum performance with many operands

2011-11-01 Thread Eugenio Piasini
Hi, I was playing around with einsum (which is really cool, by the way!), and I noticed something strange (or unexpected at least) performance-wise. Here is an example: Let x and y be two NxM arrays, and W be a NxN array. I want to compute f = x^{ik} W_i^j y_{jk} (I hope the notation is

[Numpy-discussion] einsum

2011-01-26 Thread Mark Wiebe
I wrote a new function, einsum, which implements Einstein summation notation, and I'd like comments/thoughts from people who might be interested in this kind of thing. In testing it, it is also faster than many of NumPy's built-in functions, except for dot and inner. At the bottom of this email

Re: [Numpy-discussion] einsum

2011-01-26 Thread Joshua Holbrook
On Wed, Jan 26, 2011 at 11:27 AM, Mark Wiebe mwwi...@gmail.com wrote: I wrote a new function, einsum, which implements Einstein summation notation, and I'd like comments/thoughts from people who might be interested in this kind of thing. This sounds really cool! I've definitely considered

Re: [Numpy-discussion] einsum

2011-01-26 Thread Mark Wiebe
On Wed, Jan 26, 2011 at 1:36 PM, Joshua Holbrook josh.holbr...@gmail.comwrote: On Wed, Jan 26, 2011 at 11:27 AM, Mark Wiebe mwwi...@gmail.com wrote: I wrote a new function, einsum, which implements Einstein summation notation, and I'd like comments/thoughts from people who might be

Re: [Numpy-discussion] einsum

2011-01-26 Thread Joshua Holbrook
On Wed, Jan 26, 2011 at 12:48 PM, Mark Wiebe mwwi...@gmail.com wrote: On Wed, Jan 26, 2011 at 1:36 PM, Joshua Holbrook josh.holbr...@gmail.com wrote: On Wed, Jan 26, 2011 at 11:27 AM, Mark Wiebe mwwi...@gmail.com wrote: I wrote a new function, einsum, which implements Einstein summation

Re: [Numpy-discussion] einsum

2011-01-26 Thread Mark Wiebe
On Wed, Jan 26, 2011 at 2:01 PM, Joshua Holbrook josh.holbr...@gmail.comwrote: snip How closely coupled is this new code with numpy's internals? That is, could you factor it out into its own package? If so, then people could have immediate use out of it without having to integrate it into

Re: [Numpy-discussion] einsum

2011-01-26 Thread Robert Kern
On Wed, Jan 26, 2011 at 16:43, Mark Wiebe mwwi...@gmail.com wrote: On Wed, Jan 26, 2011 at 2:01 PM, Joshua Holbrook josh.holbr...@gmail.com wrote: snip How closely coupled is this new code with numpy's internals? That is, could you factor it out into its own package? If so, then people could

Re: [Numpy-discussion] einsum

2011-01-26 Thread Joshua Holbrook
It think his real question is whether einsum() and the iterator stuff can live in a separate module that *uses* a released version of numpy rather than a development branch. -- Robert Kern Indeed, I would like to be able to install and use einsum() without having to install another

Re: [Numpy-discussion] einsum

2011-01-26 Thread Hanno Klemm
Mark, interesting idea. Given the fact that in 2-d euclidean metric, the Einstein summation conventions are only a way to write out conventional matrix multiplications, do you consider at some point to include a non-euclidean metric in this thing? (As you have in special relativity, for

Re: [Numpy-discussion] einsum

2011-01-26 Thread Gael Varoquaux
On Thu, Jan 27, 2011 at 12:18:30AM +0100, Hanno Klemm wrote: interesting idea. Given the fact that in 2-d euclidean metric, the Einstein summation conventions are only a way to write out conventional matrix multiplications, do you consider at some point to include a non-euclidean metric

Re: [Numpy-discussion] einsum

2011-01-26 Thread Mark Wiebe
On Wed, Jan 26, 2011 at 3:05 PM, Joshua Holbrook josh.holbr...@gmail.comwrote: It think his real question is whether einsum() and the iterator stuff can live in a separate module that *uses* a released version of numpy rather than a development branch. -- Robert Kern Indeed, I

Re: [Numpy-discussion] einsum

2011-01-26 Thread Mark Wiebe
On Wed, Jan 26, 2011 at 3:18 PM, Hanno Klemm kl...@phys.ethz.ch wrote: Mark, interesting idea. Given the fact that in 2-d euclidean metric, the Einstein summation conventions are only a way to write out conventional matrix multiplications, do you consider at some point to include a

Re: [Numpy-discussion] einsum

2011-01-26 Thread Hanno Klemm
Am 27.01.2011 um 00:29 schrieb Mark Wiebe: On Wed, Jan 26, 2011 at 3:18 PM, Hanno Klemm kl...@phys.ethz.ch wrote: Mark, interesting idea. Given the fact that in 2-d euclidean metric, the Einstein summation conventions are only a way to write out conventional matrix multiplications, do you

Re: [Numpy-discussion] einsum

2011-01-26 Thread Benjamin Root
On Wednesday, January 26, 2011, Gael Varoquaux gael.varoqu...@normalesup.org wrote: On Thu, Jan 27, 2011 at 12:18:30AM +0100, Hanno Klemm wrote: interesting idea. Given the fact that in 2-d euclidean metric, the Einstein summation conventions are only a way to write out conventional matrix

Re: [Numpy-discussion] einsum

2011-01-26 Thread Joshua Holbrook
Ah, sorry for misunderstanding. That would actually be very difficult, as the iterator required a fair bit of fixes and adjustments to the core. The new_iterator branch should be 1.5 ABI compatible, if that helps. I see. Perhaps the fixes and adjustments can/should be included with numpy

Re: [Numpy-discussion] einsum

2011-01-26 Thread T J
On Wed, Jan 26, 2011 at 5:02 PM, Joshua Holbrook josh.holbr...@gmail.com wrote: Ah, sorry for misunderstanding.  That would actually be very difficult, as the iterator required a fair bit of fixes and adjustments to the core. The new_iterator branch should be 1.5 ABI compatible, if that helps.

Re: [Numpy-discussion] einsum

2011-01-26 Thread josef . pktd
On Wed, Jan 26, 2011 at 7:35 PM, Benjamin Root ben.r...@ou.edu wrote: On Wednesday, January 26, 2011, Gael Varoquaux gael.varoqu...@normalesup.org wrote: On Thu, Jan 27, 2011 at 12:18:30AM +0100, Hanno Klemm wrote: interesting idea. Given the fact that in 2-d euclidean metric, the Einstein

Re: [Numpy-discussion] einsum

2011-01-26 Thread Jonathan Rocher
Nice function, and wonderful that it speeds some tasks up. some feedback: the following notation is a little counter intuitive to me: np.einsum('i...-', a) array([50, 55, 60, 65, 70]) np.sum(a, axis=0) array([50, 55, 60, 65, 70]) Since there is nothing after the -, I expected a

Re: [Numpy-discussion] einsum

2011-01-26 Thread Mark Wiebe
On Wed, Jan 26, 2011 at 6:41 PM, Jonathan Rocher jroc...@enthought.comwrote: Nice function, and wonderful that it speeds some tasks up. some feedback: the following notation is a little counter intuitive to me: np.einsum('i...-', a) array([50, 55, 60, 65, 70]) np.sum(a,

Re: [Numpy-discussion] einsum

2011-01-26 Thread Mark Wiebe
On Wed, Jan 26, 2011 at 5:23 PM, josef.p...@gmail.com wrote: snip So, if I read the examples correctly we finally get dot along an axis np.einsum('ijk,ji-', a, b) np.einsum('ijk,jik-k', a, b) or something like this. the notation might require getting used to but it doesn't look worse

Re: [Numpy-discussion] einsum

2011-01-26 Thread Joshua Holbrook
The only disadvantage I see, is that choosing the axes to operate on in a program or function requires string manipulation. One possibility would be for the Python exposure to accept lists or tuples of integers.  The subscript 'ii' could be [(0,0)], and 'ij,jk-ik' could be [(0,1), (1,2),

Re: [Numpy-discussion] einsum

2011-01-26 Thread Mark Wiebe
On Wed, Jan 26, 2011 at 8:29 PM, Joshua Holbrook josh.holbr...@gmail.comwrote: The only disadvantage I see, is that choosing the axes to operate on in a program or function requires string manipulation. One possibility would be for the Python exposure to accept lists or tuples of