tl; dr:如何预测 numpy 在多个数组中广播返回的形状,而无需实际添加数组?
我有很多使用 numpy (Python) 广播规则的脚本,因此基本上一维输入会产生多维输出。举个基本的例子,理想气体定律(压力 = rho * R_d * 温度)可能看起来像
def rhoIdeal(pressure,temperature):
rho = np.zeros_like(pressure + temperature)
rho += pressure / (287.05 * temperature)
return rho
这里没有必要,但在更复杂的函数中,用正确的形状初始化数组非常有用。如果压力和温度具有相同的形状,则 rho 也具有该形状。如果压力具有形状 (n,) 而温度具有形状 (m,),我可以调用
rhoIdeal(pressure[:,np.newaxis], temperature[np.newaxis,:])
得到形状为 (n,m) 的 rho。这让我无需循环就可以绘制具有多个温度值的图rhoIdeal
,同时仍然允许脚本接受相同形状的数组并逐个元素地计算结果。
我的问题是:是否有一个内置函数可以返回与多个输入兼容的形状?行为类似的东西
def returnShape(list_of_arrays):
return np.zeros_like(sum(list_of_arrays)).shape
实际上不必对数组求和?如果没有内置函数,一个好的实现会是什么样子?