与广播连接

yat*_*atu 5 python numpy

考虑以下数组:

a = np.array([0,1])[:,None]
b = np.array([1,2,3])

print(a)
array([[0],
       [1]])

print(b)
b = np.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法以广播后者的方式连接这两个数组,以获得以下内容?

array([[0, 1, 2, 3],
       [1, 1, 2, 3]])
Run Code Online (Sandbox Code Playgroud)

我见过有这样一个相关的问题封闭的问题。提出了一个涉及 的替代方案np.broadcast_arrays,但是我无法使其适应我的示例。有什么方法可以做到这一点,不包括np.tile/np.concatenate解决方案?

Anu*_*ani 6

您可以通过以下方式进行

import numpy as np
a = np.array([0,1])[:,None]
b = np.array([1,2,3])
b_new = np.broadcast_to(b,(a.shape[0],b.shape[0]))
c = np.concatenate((a,b_new),axis=1)
print(c)
Run Code Online (Sandbox Code Playgroud)