[英]How to convert this numpy function to python math function?
[英]Python numpy function for matrix math
我必须 np arrays
a = np.array[[1,2]
[2,3]
[3,4]
[5,6]]
b = np.array [[2,4]
[6,8]
[10,11]
我想将 a 的每一行与数组 b 中的每个元素相乘,以便使用 a 行 xb 行(作为列)的维度创建数组 c
c = np.array[[2,8],[6,16],[10,22]
[4,12],[12,21],[20,33]
....]
这样做还有其他选择,但我真的很想利用 numpy 的 ufunc 的速度......如果可能的话。
任何和所有的帮助表示赞赏。
这是做你想做的吗?
>>> a
array([[1, 2],
[2, 3],
[3, 4],
[5, 6]])
>>> b
array([[ 2, 4],
[ 6, 8],
[10, 11]])
>>> a[:,None,:]*b
array([[[ 2, 8],
[ 6, 16],
[10, 22]],
[[ 4, 12],
[12, 24],
[20, 33]],
[[ 6, 16],
[18, 32],
[30, 44]],
[[10, 24],
[30, 48],
[50, 66]]])
>>> _.shape
(4, 3, 2)
或者,如果它没有正确的形状,你可以重新塑造它:
>>> (a[:,None,:]*b).reshape((a.shape[0]*b.shape[0], 2))
array([[ 2, 8],
[ 6, 16],
[10, 22],
[ 4, 12],
[12, 24],
[20, 33],
[ 6, 16],
[18, 32],
[30, 44],
[10, 24],
[30, 48],
[50, 66]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.