[Numpy-discussion] matrix problem: float to matrix power
Charles R Harris
Wed Oct 31 12:26:46 CDT 2007
On 10/31/07, Robert Kern <firstname.lastname@example.org> wrote:
> Charles R Harris wrote:
> > On 10/31/07, Alan G Isaac <email@example.com> wrote:
> >>>>> 1.0**numpy.array([1,2,3])
> >> array([ 1., 1., 1.])
> >>>>> 1.0**numpy.mat([1,2,3])
> >> Traceback (most recent call last):
> >> File "<stdin>", line 1, in <module>
> >> TypeError: unsupported operand type(s) for ** or pow(): 'float' and 'matrix'
> >> Why the restriction for matrices?
> > Looks like it just got overlooked. It works fine for 2D arrays.
> > In : 1.0**eye(3)
> > Out:
> > array([[ 1., 1., 1.],
> > [ 1., 1., 1.],
> > [ 1., 1., 1.]])
> For ndarrays, it does elementwise exponentiation, so it is neither here nor
> there with respect to matrices. What is the definition of a scalar raised to a
> matrix power? I don't ever recall seeing one.
I suppose the usual:
a**m = exp(ln(a)*m)
but that isn't the broadcast version.
More information about the Numpy-discussion