【发布时间】:2016-10-08 16:55:46
【问题描述】:
我有这个代码:
from itertools import product
from numpy import zeros
Ysys = zeros((2*n_bus, 2*n_bus))
for a, b in product(range(n_bus), range(n_bus)):
Ysys[2*a, 2*b] = Yseries[a, b].real
Ysys[2*a, 2*b+1] = -Yseries[a, b].imag
Ysys[2*a+1, 2*b] = Yseries[a, b].imag
Ysys[2*a+1, 2*b+1] = Yseries[a, b].real
Yseries 是一个由n_bus 乘以n_bus 维度的稀疏方阵,其中包含复数。本质上,我想将复杂矩阵“分解”为浮点矩阵。
我的 for 循环效率低下,因为我应该提前知道每个数据条目的行、列坐标。理想情况下,a 是一个包含每个条目的所有行坐标的数组,b 应该是一个包含每个条目的所有列坐标的数组。
我的问题是我不理解我的 CSR matrx Yseries 中包含的数组 indices 和 indptr。
不管我说了什么,我都非常感谢有关如何矢量化 for 循环的指示。
【问题讨论】:
标签: scipy sparse-matrix