添加两个大小不等的numpy数组(长度n和m)以生成一个n*m的数组,而不使用for循环

2024-04-25 12:46:27 发布

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

我正在尝试矢量化一些简单的计算。我有两个数组:

A = np.array([1,2,3,4])
B = np.array([1,2])

我要计算一个数组C,它的计算如下:

C = []
for i in A:
  for j in B:
     C.append(i+j)

C = np.array(C)

以至于

C = array([2, 3, 3, 4, 4, 5, 5, 6])

实际上,数组非常大,这些for循环需要相当长的时间。有没有办法把这些计算矢量化?你知道吗


Tags: infornp时间数组array矢量化append
1条回答
网友
1楼 · 发布于 2024-04-25 12:46:27

使用广播:

In [4]: (A[:, None] + B).reshape(-1)
Out[4]: array([2, 3, 3, 4, 4, 5, 5, 6])

outer

In [7]: np.add.outer(A, B).reshape(-1)
Out[7]: array([2, 3, 3, 4, 4, 5, 5, 6])

相关问题 更多 >