You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用Numpy实现(N,50)数组与(N,)数组的乘除运算?

用Numpy实现按行除法(等效Pandas的divide(axis=0))

要实现等效于目标Pandas代码的功能,核心是利用Numpy的广播机制,让一维的T数组适配二维paths的行维度:

  1. 先对T计算平方根:
    sqrt_T = np.sqrt(T)
    
  2. 将sqrt_T转换为列向量(形状变为(525600, 1)),Numpy会自动将其广播到paths的所有列:
    d1 = paths / sqrt_T.reshape(-1, 1)
    

也可以合并成一行代码:

d1 = paths / np.sqrt(T)[:, np.newaxis]

原理说明

  • Pandas的divide(..., axis=0)是让每一行的所有元素除以该行对应的sqrt(T)值
  • Numpy中,当一维数组(形状(N,))转为列向量(形状(N,1))后,与二维数组(形状(N,M))做除法时,会自动将列向量广播到M列,实现逐行元素的除法运算,和Pandas的效果完全一致。

内容的提问来源于stack exchange,提问作者junglekim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:01:16