【发布时间】:2021-06-10 19:20:51
【问题描述】:
我需要相互添加 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 语言编写)。
【问题讨论】:
-
我不认为调整大小正在做你认为的事情
-
您需要通过添加不同大小的数组来非常仔细地指定您的实际含义。否则,您也可以将随机数相加。
-
resize方法是就地的,因此相对较快,但它的使用非常有限。但要密切注意它是如何填充数组的。
标签: python-3.x performance numpy addition zero-padding