cod矢量化故障

2024-04-26 03:01:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难做到这一点。我有两个m x n矩阵(A和B),我需要将A的每一列乘以B中的行,以生成一个m x(n*n)矩阵。我想我的解释不是很清楚,所以我会贴一个例子:

A = 
[1 2 
 3 4]
B = 
[5 6
 7 8]

我希望:

 [[5 6] [10 12]
  [21 24] [28 32]]

我可以使用for循环来完成,但是我想尽量避免for。也可以使用numpy将所有这些和所有数据存储为np.array。你知道吗


Tags: 数据numpyfornp矩阵array例子我会
2条回答

也许:

>>> A = np.array([[1,2],[3,4]])
>>> B = np.array([[5,6],[7,8]])
>>> (A * B[None, :].T).T
array([[[ 5,  6],
        [21, 24]],

       [[10, 12],
        [28, 32]]])

在这里,我们使用NoneB添加一个额外的维度,并使用一些换位来获得正确的对齐。你知道吗

如果我没听错的话,你想要基本(m*n)乘法对吗?使用numpy.dot()

>>> a = [[1, 0], [0, 1]]
>>> b = [[4, 1], [2, 2]]
>>> np.dot(a, b)
array([[4, 1],
       [2, 2]])

相关问题 更多 >