[Tutor] strange behavior of matrix**matrix

A.Brozi brozi at toya.net.pl
Sun Jul 17 08:41:33 EDT 2016


I'm puzzling over some strange behavior of raising a matrix to a matrix 

If I create two matrices (containing integers):
a = np.array([2])
b = np.array([-1])
the operation a**b produces:
array([0], dtype=int32)

The result of division b/a is correct:

If any one of the matrices is float (i.e. created with the use of 
dtype=float) the result is correct, i.e. a**b produces:
array([ 0.5])

If a and b are single integer 32 numbers, e.g. obtained with:
a = np.int32(2)
b = np.int32(-1)
the same operation a**b produces:
as expected.

Perhaps it's somehow related to the 'old' integer division of Pythons 2.x.

I wonder if it's a bug or a feature.
And if it's a feature, then what is it useful for?

I'm on Python 3.5.1 64bit via Spyder 3.0.0dev, numpy 1.9.3, scipy 0.16.1 
(all installed from WinPython-64bit-, running on Windows 10.

Andrzej Brozi

More information about the Tutor mailing list