Python中能否将一个矩阵设置为另一个矩阵的元素?
Python中是否可以将一个矩阵设置为另一个矩阵的元素
可以实现,根据你使用的矩阵实现方式不同,操作逻辑有区别:
原生列表实现的矩阵
Python原生列表没有元素类型限制,可以直接嵌套存放任意对象,把代表子矩阵的列表赋值到对应位置即可,示例代码:# 待嵌入的2x2子矩阵 sub_mat = [ ["r11", "r12"], ["r21", "r22"] ] # 定义外层矩阵c,c11位置直接存入子矩阵 c = [ [sub_mat, "c12"], ["c21", "c22"] ]这种方式实现的嵌套结构可以直接通过
c[0][0]取到存放在c11位置的完整子矩阵。NumPy库实现的数值矩阵
常规的同构数值型NumPy数组不支持直接把另一个矩阵作为单个元素存入,会触发维度不匹配的报错。如果确实需要嵌套存储,可以将外层数组的元素类型设置为object,即可存放任意Python对象,示例代码:import numpy as np sub_mat = np.array([["r11", "r12"], ["r21", "r22"]]) # 初始化2x2的object类型外层矩阵 c = np.empty((2, 2), dtype=object) c[0, 0] = sub_mat c[0, 1] = "c12" c[1, 0] = "c21" c[1, 1] = "c22"如果你的需求是做分块矩阵运算,不建议用object数组嵌套存储,直接调用
np.block按分块规则拼接成统一的高维数组即可,运算性能和兼容性更好。
内容的提问来源于stack exchange,提问作者alireza
相关产品推荐
相关产品推荐

