[Numpy-discussion] Bug? Product of complex arrays
Tim Hochberg
tim.hochberg at ieee.org
Wed Mar 14 11:17:22 CST 2001
From: "Aureli Soria Frisch" <Aureli.Soria_Frisch at ipk.fhg.de>
> Hi,
>
> It seems there is a problem when multiplying complex arrays, but maybe
that
> is already solved for the new NumPy 17.3, is it?
>
> The product of complex arrays does not seem to be right.
>
> Code lines:
>
> >>> a=a_conj[:]
This is your problem here. Array's differ from lists and such in that
slicing does not produce a copy. 'a' and 'a_conj' point to the same data
after this operation. One way to produce a copy is to use 'a =
Numeric.array(a_conj)'
> >>> a
> array([[ 1.-0.j, 1.-1.j, 1.-2.j],
> [ 1.-3.j, 1.-4.j, 1.-5.j],
> [ 1.-6.j, 1.-7.j, 1.-8.j]])
> >>> a.imag=a.imag*-1
> >>> a
> array([[ 1.+0.j, 1.+1.j, 1.+2.j],
> [ 1.+3.j, 1.+4.j, 1.+5.j],
> [ 1.+6.j, 1.+7.j, 1.+8.j]])
If you look at a_conj now, you should see that it is the same as a.
> >>> Numeric.multiply(a,a_conj)
> array([[ 1. +0.j, 0. +2.j, -3. +4.j],
> [ -8. +6.j, -15. +8.j, -24.+10.j],
> [-35.+12.j, -48.+14.j, -63.+16.j]])
So what you have here is really a squared.
So, you could get this to work by replacing slicing with array(a_conf). A
much simpler way is:
a = Numeric.conjugate(a_conj)
a*a_conj
#...
Hope that clears things up for you.
-tim
> where the answer should be [[1+0j,2+0j,5+0j][10+0j,...
>
> #################################
> Aureli Soria Frisch
> Fraunhofer IPK
> Dept. Pattern Recognition
>
> post: Pascalstr. 8-9, 10587 Berlin, Germany
> e-mail:aureli at ipk.fhg.de
> fon: +49 30 39 00 61 50
> fax: +49 30 39 17 517
> #################################
>
>
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at lists.sourceforge.net
> http://lists.sourceforge.net/lists/listinfo/numpy-discussion
More information about the Numpy-discussion
mailing list