您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 将numpy.array中的每个元素与numpy.array中的每个元素相乘

5b51 2022/1/14 8:22:29 python 字数 1917 阅读 526 来源 www.jb51.cc/python

鉴于两个numpy.arrays a和b, c = numpy.outer(a, b) 返回二维数组,其中c [i,j] == a [i] * b [j].现在,想象一下有k个维度. >哪个操作返回维数为k 1的数组c,其中c […,j] == a * b [j]? 另外,让b具有l维度. >哪个操作返回维数为k 1的数组c,其中c […,i1,i2,i3] == a * b [i1,i2,i3]

概述

c = numpy.outer(a,b)

返回二维数组,其中c [i,j] == a [i] * b [j].现在,想象一下有k个维度.

>哪个操作返回维数为k 1的数组c,其中c […,j] == a * b [j]?

另外,让b具有l维度.

>哪个操作返回维数为k 1的数组c,i1,i2,i3] == a * b [i1,i3]?

numpy.multiply.outer(a,b)

而不是使用numpy.outer.

这里提出的所有解决方案同样快速;对于小数组,multiply.outer有一个轻微的边缘

生成图像的代码

import numpy
import perfplot


def multiply_outer(data):
    a,b = data
    return numpy.multiply.outer(a,b)


def outer_reshape(data):
    a,b = data
    return numpy.outer(a,b).reshape((a.shape + b.shape))


def tensor_dot(data):
    a,b = data
    return numpy.tensordot(a,b,0)


perfplot.show(
        setup=lambda n: (numpy.random.rand(n,n),numpy.random.rand(n,n)),kernels=[multiply_outer,outer_reshape,tensor_dot],n_range=[2**k for k in range(7)],logx=True,logy=True,)

总结

以上是编程之家为你收集整理的python – 将numpy.array中的每个元素与numpy.array中的每个元素相乘全部内容,希望文章能够帮你解决python – 将numpy.array中的每个元素与numpy.array中的每个元素相乘所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶