我想为技术圈和生物圈矩阵的hstack和存储采样值进行有效重用(例如用于灵敏度分析)。现在关注技术领域矩阵,这就是我所拥有的:
activity_dict
和product_dict
(范围= LCA对象)mapping
字典(范围=项目)我最终想要的是:
(1)一个数组,其中行是来自我的技术圈矩阵的非零元素,列是不同的蒙特卡罗迭代;和
(2)确定 i 行所指的内容的某种方式。
我知道我可以简单地说:
将我的CSR稀疏矩阵转换为COO(即coo_matrix = mc.technosphere_matrix.tocoo()
)并隐藏生成的COO矩阵data
将row
和col
存储为一个coo_matrix作为数组(例如coo_rows=coo_matrix.row
和coo_cols=coo_matrix.col
)。这些指数对我的所有矩阵都是一样的。
使用product_dict
和activity_dict
的反向来确定每个元素所指的内容。例如,要知道我的hstacked数据中的 i 行是什么,我可以使用reverse_activity_dict[coo_cols[i]]
来获取我的
活动名称reverse_product_dict[coo_rows[i]]
以获取我的产品。
然而,这并没有利用already optimized brightway functions ...我只是没有看到 如何使用这些。
答案可能是here,但只是遥不可及......
作为奖励:我的MC迭代可能来自具有不同mapping
s的不同项目(但具有相同的数据库名称)。
答案 0 :(得分:0)
我最终决定采用以下存储策略:
(input key, output key, type)
。如elsewhere所示,这些可以有效地与Brightway一起使用
MatrixBuilder
课程。