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

时间:2018-05-30 12:08:36

标签: python arrays numpy

我试图进行几个简单的计算。我有两个数组:

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循环需要相当长的时间。有没有办法对这些计算进行矢量化?

1 个答案:

答案 0 :(得分:4)

使用广播:

boost::python::def

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

outer