Skip to main content
 首页 » 编程设计

python之优化python中的2D-1D操作

2025年05月04日21over140

应用乘法等简单运算的 pythonic-CPU 优化方法是什么:

  • 沿着二维数组的一维
  • 对二维数组其他维度的所有元素
  • 根据另一个一维数组中的元素

?

例子:

x=np.arange(150).reshape([50,3]) 
y=np.arange(50)+10 

我想做的事:

np.array([x[i,:]*y[i] for i in range(50)]) 

但我想让它尽可能快,因为“50”可能是无数个。

顺便说一句,这完全等同于:

np.array([x[i,:]*j for i,j in enumerate(y)]) 

?


我在这里做了一些更新,但最后打开了一个新问题

请您参考如下方法:

您可以使用 None 或 np.newaxis 向 y 添加一个新轴,这样它就可以在 x 中广播:

x * y[:,None] 

np.allclose((x * y[:,None]), np.array([x[i,:]*y[i] for i in range(50)])) 
# True