假设我有2个numpy数组,如下所示:
init = 100
a = np.append(init, np.zeros(5))
b = np.random.randn(5)
因此a的形状为(6,),b的形状为(5,)。我想将它们加在一起(或执行一些其他运算,例如求幂),以获得形状为(6,)的新的numpy数组,其第一个值(100)相同,其余值相加(在此)这种情况看起来就像在b后面加上100一样,但这是因为这是一个用零初始化的玩具示例,尝试按原样添加将产生:
a+b
ValueError:操作数不能与形状(6,)(5,)一起广播
是否有一种单线方式使用广播,或者这里的newaxis来欺骗numpy将它们视为兼容形状?
所需的输出:
array([100.,1.93947328,0.12075821,1.65319123, -0.29222052,-1.04465838])
答案 0 :(得分:0)
您的意思是您想做这样的事情
np.append(a[0:1], a[1:,] + b)
您希望您的期望输出是什么?我提供的答案执行此广播添加操作,不包括a
答案 1 :(得分:0)
不是一条直线,而是两条短线:
c = a.copy()
c[1:] += b