我想为技术圈和生物圈矩阵堆叠和存储采样值,以便有效地重用(例如用于敏感性分析)。现在专注于技术领域矩阵,这就是我所拥有的:
- 保存的 CSR 稀疏矩阵,每个 Monte Carlo 迭代一个
- 和
activity_dict
(product_dict
范围=LCA 对象) mapping
字典(范围=项目)
我最终想要的是:
(1) 一个数组,其中行是我的技术领域矩阵中的非零元素,列是不同的蒙特卡罗迭代;和
(2) 确定第i行所指内容的某种方式。
我知道我可以简单地:
将我的 CSR 稀疏矩阵转换为 COO(即
coo_matrix = mc.technosphere_matrix.tocoo()
)并 hstack 生成的 COO 矩阵data
将一个 coo_matrix的
row
and存储col
为数组(例如coo_rows=coo_matrix.row
andcoo_cols=coo_matrix.col
)。这些索引对于我的所有矩阵都是相同的。使用
product_dict
and的反面activity_dict
来确定每个元素所指的内容。例如,要知道我的 hstacked 数据中的第i行指的是什么,我可以使用reverse_activity_dict[coo_cols[i]]
获取我的
活动名称reverse_product_dict[coo_rows[i]]
来获取我的产品。
然而,这并没有利用已经优化的brightway功能......我只是看不到如何使用这些功能。
答案可能就在这里,但遥不可及……
作为奖励:我的 MC 迭代可能来自具有不同mapping
s 的不同项目(但具有相同的数据库名称)。