[Numpy-discussion] Re: indexing problem
Ryan Krauss
ryanlists at gmail.com
Mon Feb 13 09:54:02 EST 2006
This may only be a problem for ridiculously large numbers. I actually
meant to be dealing with these values:
In [75]: d
Out[75]:
array([ 246.74011003, 986.96044011, 2220.66099025, 3947.84176044,
6168.50275068, 8882.64396098, 12090.26539133, 15791.36704174,
19985.94891221, 24674.01100272])
In [76]: s=d[-1]*1.0j
In [77]: s
Out[77]: 24674.011002723393j
In [78]: type(s)
Out[78]: <type 'complex128scalar'>
In [79]: s**2
Out[79]: (-608806818.96251547+7.4554869875188623e-08j)
So perhaps the previous difference of 26 orders of magnitude really
did mean that the imaginary part was negligibly small, that just got
obscured by the fact that the real part was order 1e+135.
On 2/13/06, Ryan Krauss <ryanlists at gmail.com> wrote:
> I am having a problem with indexing an array and not getting the
> expected scalar behavior for complex128scalar:
>
> In [44]: c
> Out[44]:
> array([ 3.31781200e+06, 2.20157529e+13, 1.46088259e+20,
> 9.69386754e+26, 6.43248601e+33, 4.26835585e+40,
> 2.83232045e+47, 1.87942136e+54, 1.24711335e+61,
> 8.27537526e+67])
>
> In [45]: s=c[-1]*1.0j
>
> In [46]: type(s)
> Out[46]: <type 'complex128scalar'>
>
> In [47]: s**2
> Out[47]: (-6.848183561893313e+135+8.3863291020365108e+119j)
>
> In [48]: s=8.27537526e+67*1.0j
>
> In [49]: type(s)
> Out[49]: <type 'complex'>
>
> In [50]: s**2
> Out[50]: (-6.8481835693820068e+135+0j)
>
> Why does result 47 have a non-zero imaginary part?
>
> Ryan
>
More information about the NumPy-Discussion
mailing list