给定100x180
U
和0
的{{1}}稀疏矩阵1
,如下所示:
In[1]: U.todense()
Out[1]:
matrix([[ 1., 1., 0., ..., 0., 0., 0.],
[ 1., 0., 1., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]])
具有180个标量值的方法(来自NetworkX),如下所示:
In[2]: G.edges(data=True)
Out[2]:
[(0, 1, 1.0),
(0, 10, 1.0),
(1, 11, 1.0),
(1, 2, 1.0),
(2, 3, 1.0),... ]
我想将矩阵中的每一列乘以G.edges()
中相应元组的第三个元素(这里有一个小例子:所有值都是1.0
),所以我所做的是:
U.todense() #U.shape[0]=100 (rows); U.shape[1]=180 (columns)
W=U
W.todense()
for j in range(0, U.shape[1]):
W[:][j]=U[:][j]*G.edges(data=True)[j][2]
我错过了什么,因为我收到了这个错误?
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-104-3a2b00447c19> in <module>()
21
22 for j in range(0, U.shape[1]):
---> 23 W[:][j]=U[:][j]*G.edges(data=True)[j][2]
24
...
...
...
IndexError: index out of bounds: 0 <= 100 <= 100, 0 <= 101 <= 100, 100 <= 101