python - 如何在Python中创建嵌套矩阵

标签 python matrix numpy scipy

我想知道是否可以在 python 中创建一个嵌套矩阵。这里我定义了我的矩阵 A

  A = array([[ 12.,   0.],[  0.,   4.]])

我想用通用 2x2 矩阵替换零,然后使用 imshow() 绘制所有内容。这可能吗?

我尝试用这种方式定义嵌套矩阵

  A = array([[ 12.,   array([[ 1.,   1.],[  1.,   1.]])],[  0.,   4.]])

但我收到此错误消息

ValueError:使用序列设置数组元素。

最佳答案

>>> M = NP.empty((5, 5), dtype=NP.object)     # a 2D NumPy array
>>> M
  array([[None, None, None, None, None],
         [None, None, None, None, None],
         [None, None, None, None, None],
         [None, None, None, None, None],
         [None, None, None, None, None]], dtype=object)

现在您可以插入序列,而不会出现ValueError

>>> M[2,2] = NP.array([4, 3, 5])
>>> M
  array([[None, None, None, None, None],
         [None, None, None, None, None],
         [None, None, [4 3 5], None, None],
         [None, None, None, None, None],
         [None, None, None, None, None]], dtype=object)

>>> M[2,2]
   array([4, 3, 5])

OP 的另一部分——将这样的数组传递给 Matplotlib 的 imshow 是一个问题。

imshow 将 2D 数组直观地表示为根据 x、y 索引定位在 Canvas 上的点云。该索引处的值根据基于将颜色映射到数组值的颜色图的不同颜色和颜色强度来指示。因此,imshow 数据参数的有效参数是:

  • NumPy 二维数组

两个更高维度的 NumPy 数组(并且只有这两个 AFAIK),imshow 可以解释为

  • rgb 元组(x、y、r、b、g)的 NumPy 二维数组

  • NumPy 6D 数组,被解释为 rgba 的 2D 数组 元组 (x, y, r, g, b, a)

关于python - 如何在Python中创建嵌套矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10570818/

相关文章:

python - 使用自定义函数按组汇总 pandas DataFrame 会导致错误的输出

python - Numpy、掩蔽和 sklearn 聚类

c - 如何防止 scanf() 自动将剩余数字插入下一个数组?

python - Numpy 整数 nan

python - 子图的 matplotlib get_color

python - 如何确定输入何时是字母?

python - 当字符串周围的引号不匹配时,为什么 Python 不会给出任何错误?

java - 优化算法java

python - 为什么 numpy.double 适用于嵌套列表而 numpy.complex 不适用?

python - MATLAB find 函数转换为 python - 3 输入参数版本