[Numpy-discussion] Behaviour of integer powers
Stéfan van der Walt
stefan at sun.ac.za
Sun Feb 8 04:54:04 EST 2009
Hi all,
Ticket #955 (http://scipy.org/scipy/numpy/ticket/955) touches on the
following issue:
>>> 0.0 ** np.array([-1, 0, 1], dtype=np.int32)
array([ Inf, 1., 0.])
>>> 0.0 ** np.array([-1, 0, 1], dtype=np.int32)[0]
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
ZeroDivisionError: 0.0 cannot be raised to a negative power
This is on a 32-bit platform.
As I understand this happens because, in the second case, Python sees
that "-1" is an int and does the power operation. In other words,
when we raise to the power of an array, the NumPy machinery is
involved, whereas if we raise to np.int32(-1), it is not. This is due
to the int32 type deriving from the Python int.
I can't think of an easy way to address the problem, but I was hoping
to get some advice from the list.
Thanks
Stéfan
More information about the NumPy-Discussion
mailing list