有没有办法创建一个矩阵,其条目也是Python中的矩阵?我没有看到任何方法与numpy这样做。
*换句话说,我希望A [i,j]也是一个矩阵。
答案 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
是否有任何有用的计算属性。