我有一个上面的矩阵" A"喜欢以下。
1 2 3 4
1 0 1 3 0
2 0 3 1
3 0 3
4 0
然后还有另一个三角形矩阵" B"如下
1 2 3 4
1 0 14.89 23.89 0
2 0 24.39 14.89
3 0 23.89
4 0
我需要从B [1,2],A [1,3],B [1,3]等乘以A [1,2]。
1 * 14.89
3 * 23.89
代码
In [14]: A = np.array([[0,1,3,0],[1,0,3,1],[3,3,0,3],[0,1,3,0]])
In [15]: A
Out[15]:
array([[0, 1, 3, 0],
[1, 0, 3, 1],
[3, 3, 0, 3],
[0, 1, 3, 0]])
In [16]: B = np.array([[0,14.89,23.89,0],[14.89,0,24.39,14.89],[23.89,24.39,0,23.89],[0,14.89,23.89,0]])
In [17]: B
Out[17]:
array([[ 0. , 14.89, 23.89, 0. ],
[ 14.89, 0. , 24.39, 14.89],
[ 23.89, 24.39, 0. , 23.89],
[ 0. , 14.89, 23.89, 0. ]])
这种做法似乎有效。 ?
for cell in np.triu(A).flat:
for cell2 in np.triu(B).flat:
print cell*cell2
答案 0 :(得分:1)
Numpy数组乘法以元素方式运算,因此在这种情况下,简单的A*B
就足够了。
对于矩阵点,内部和外部产品,您需要明确使用numpy.dot
,np.inner
和numpy.outer
。