【问题标题】:matrix entries also matrices in python矩阵条目也是python中的矩阵
【发布时间】:2015-10-16 05:16:36
【问题描述】:

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

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

【问题讨论】:

  • 好吧,您可以创建 4 维数组,然后 A[i,j] 的条目将是矩阵。但 A 本身将是一个 4 维数组(不是矩阵)。这就是你想要的吗?
  • 矩阵应该始终是二维的。但是您可能想检查是否可以使用 ndarray 来完成。
  • 您是特别想要np.matrix,还是np.array 可以?数组可以是 3d、4d 等,矩阵总是 2d。

标签: python numpy


【解决方案1】:

如果 4d 数组没问题,那么

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

在哪里

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

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

用 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 是否有任何有用的计算属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    • 2019-05-04
    • 2020-12-05
    • 2011-11-20
    • 2021-11-12
    相关资源
    最近更新 更多