繁体   English   中英

Python numpy 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM