矩阵条目也是python中的矩阵

时间:2015-10-16 05:16:36

标签: python numpy

有没有办法创建一个矩阵,其条目也是Python中的矩阵?我没有看到任何方法与numpy这样做。

*换句话说,我希望A [i,j]也是一个矩阵。

1 个答案:

答案 0 :(得分:3)

如果4d阵列没问题,那么

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

,其中

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

如果必须是np.matrix类型,那么它必须是2d。它可以是dtype=object,其中每个元素又是2d矩阵。这种结构有点复杂(更多?)。

使用dtype = object

创建一个空数组
In [565]: x=np.zeros((2,2),dtype=object)

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

用矩阵填充每个元素:

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)

将其变为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)

我不知道xm是否有任何有用的计算属性。