python:用numpy将两个1d矩阵相乘

2024-09-25 08:38:04 发布

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

a = np.asarray([1,2,3])

b = np.asarray([2,3,4,5])

a.shape

(3,)

b.shape

(4,)

我要一个3乘4的矩阵,它是a和b的乘积

^{pr2}$

在美国运输部(a,b.转置())

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: objects are not aligned

当数组是二维的时候,点积只等价于矩阵乘法,所以美国运输部不起作用。在


Tags: mostnpstdinline矩阵callfilelast
3条回答

这是^{}

In [2]: np.outer([1, 2, 3], [2, 3, 4, 5])
Out[2]: 
array([[ 2,  3,  4,  5],
       [ 4,  6,  8, 10],
       [ 6,  9, 12, 15]])

使用asmatrix,而不是asarray。在

import numpy as np
a = np.asmatrix([1,2,3])
b = np.asmatrix([2,3,4,5])
a.shape #(1, 3)
b.shape #(1, 4)
np.dot(a.transpose(),b)

结果:

^{pr2}$

不需要使用matrix子类型。正则array可以扩展到2d(如果需要,还可以转置)。在

In [2]: a=np.array([1,2,3]) 
In [3]: b=np.array([2,3,4,5])

In [4]: a[:,None]
Out[4]: 
array([[1],
       [2],
       [3]])

In [5]: a[:,None]*b   # outer product via broadcasting
Out[5]: 
array([[ 2,  3,  4,  5],
       [ 4,  6,  8, 10],
       [ 6,  9, 12, 15]])

生成列数组的其他方法

^{pr2}$

相关问题 更多 >