numpy中通用填充添加的最快解决方案

问题描述

我需要相互添加 2 个可变大小的暗淡数组。有很多方法可以做到这一点!

典型大小是几千乘几百(因为这可能会影响缩放!)。需要进行数十万次这些添加。第一维在我的情况下保证是相同的,但子数组是可变长度的。

工作较小的例子:

a = np.ones(shape=(20,20))
b = np.ones(shape=(20,18))
c = a+b # Expected error

b.resize(a.shape)
c = b+c # This works!

有没有更快的方法来做到这一点?我对上述其他 Pythonic 解决方案感兴趣,但也对无论复杂性如何都可能真正最快的解决方案感兴趣(这种项目的速度主要是速度,但还不如用 C 编写)。

解决方法

如果你不介意改变a,你可以这样做

a[:,:b.shape[1]] += b

我怀疑这比填充 b 然后添加要快,但像这样的事情需要用真实数据进行测试。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...