我正在使用numpy
在Python
中执行一些数学计算。
我有一个尺寸为A
的{{1}}矩阵和一个尺寸为(N, N)
的向量b
。
我想将m
乘以A
以获得大小b
的张量。
例如,如果是:
(N, N, m)
我想制造产品以获得张量A
1 2
3 4
b
1 2 3
:
C = A*b
最后,我想获得一个C
1 2
3 4
2 4
6 8
3 6
9 12
矩阵,该矩阵沿第三个方向的C最大值为
(N,N)
是否有一个允许执行此操作的numpy函数?
更新
如果最后我想将向量max(C)
3 6
9 12
的第i个元素添加到(N, N, i)
的每个矩阵C
中?
在示例中:
b
答案 0 :(得分:1)
这是利用broadcasting的一种方法:
(b[:,None,None] * A).max(0)
array([[ 3, 6],
[ 9, 12]])
更新:您可以使用以下方法将b
添加到每个内部矩阵:
b[:,None,None] * (1+A)
array([[[ 2, 3],
[ 4, 5]],
[[ 4, 6],
[ 8, 10]],
[[ 6, 9],
[12, 15]]])
设置:
A = np.array([[1,2], [3,4]])
b = np.array([1,2,3])