Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

matrix entries also matrices in python

Tags:

python

numpy

is there a way to create a matrix whose entries are also matrices in Python? I don't see any way to do so with numpy.

*In other words, I want A[i,j] to be a matrix as well.

like image 883
Glassjawed Avatar asked Feb 19 '26 18:02

Glassjawed


1 Answers

If a 4d array is ok, then

x = np.zeros((3,4,2,2), dtype=int)

where

x[0,0].shape # (2,2)

If it must be np.matrix type, then it has to be 2d. It can be dtype=object, where each element is in turn a 2d matrix. That construction is a bit more convoluted (a lot more?).

Make an empty array with dtype=object

In [565]: x=np.zeros((2,2),dtype=object)

In [566]: x
Out[566]: 
array([[0, 0],
       [0, 0]], dtype=object)

Fill each element with a matrix:

In [567]: x[0,0]=np.matrix([[0,1],[2,3]])
In [569]: x[0,1]=np.matrix([[0,1],[2,3]])
In [570]: x[1,0]=np.matrix([[0,1],[2,3]])
In [571]: x[1,1]=np.matrix([[0,1],[2,3]])

In [572]: x
Out[572]: 
array([[matrix([[0, 1],
        [2, 3]]), matrix([[0, 1],
        [2, 3]])],
       [matrix([[0, 1],
        [2, 3]]), matrix([[0, 1],
        [2, 3]])]], dtype=object)

Turn it into a matrix:

In [573]: xm=np.matrix(x)

In [574]: xm
Out[574]: 
matrix([[matrix([[0, 1],
         [2, 3]]), matrix([[0, 1],
         [2, 3]])],
        [matrix([[0, 1],
         [2, 3]]), matrix([[0, 1],
         [2, 3]])]], dtype=object)

I don't know whether xm has any useful computational properties.

like image 160
hpaulj Avatar answered Feb 21 '26 08:02

hpaulj



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!