|
|
1
2
下面是另一个直接实现,它恰好在示例中击败了其他实现。值得一提的是@hpaulj和@Warren Weckesser的hack,它几乎同样快,而且更简洁:
样本运行:
|
|
|
2
1
我在NumPy文档中没有看到任何与此相关的内容。可以向每个目标形状广播单个0维数组,然后相互广播所有结果:
这样可以避免为大型形状分配大量内存。不过,需要创建阵列感觉有点傻。 |
|
|
3
1
下面是一个简单的实现,以防有人需要它(它可能有助于理解广播)。不过我更喜欢使用NumPy函数。
编辑 我将这个函数与其他几个答案进行了比较,结果证明它是最快的( 编辑 ,Paul Panzer编写了一个更快的函数,请参见他的答案,我将其添加到下面的列表中):
|
|
|
4
0
第二个速度快了很多,4.79秒对42.4秒。第三个速度快了一点。
正如我第一次评论的那样,我从
|
|
|
5
0
假设这些形状实际上可以被广播,那么这是可行的:
如果假设没有空维度,那么
|