【发布时间】:2024-05-02 18:20:01
【问题描述】:
我有两个 numpy 数组:
- 一个名为 t 的形状为 (70L,) 的一维数组,其元素名为 let s say ti
- 一个名为 I 的 3D 数组,形状为 (70L, 1024L, 1024L),每个元素称为 Ii。因此,Ii 的尺寸为 (1024L, 1024L)
我想沿第一个维度制作两个数组的乘积,即:
tI = t1*I1,t2*I2,...,tN*IN
比如再得到一个新的维数(70L,1024L,1024L)的数组,然后沿第一个维求和,得到一个维数为(1024L,1024L)的数组:
tsum = t1*I1 + t2*I2 + ... +tN*IN
目前我对执行以下操作感到满意:
tI = np.asarray([t[i]*I[i,:,:] for i in range(t.shape[0])])
tsum = np.sum(tI,axis=0)
但它会有点慢,因为我的数组的尺寸正在增加。 我想知道是否存在针对特定任务更优化的 numpy 或 scipy 函数?
在此先感谢您提供任何链接或信息。
格雷格
【问题讨论】:
标签: python arrays performance numpy multiplication