假设我有一个列向量
B = [[5],
[7]]
和一个数组
A = [[1, 1, 1, 1],
[247, 121, 1, 314]]
我想要的是将A
的顶行与其B
的对应行(对于底行也是如此)耦合,然后对这些对上的函数func(a,b)
求值。例如,如果函数是scipy.special.betaln
,我想计算如下
C = [[betaln(1,5) , betaln(1,5) , betaln(1,5), betaln(1,5) ]
[betaln(247,7), betaln(121,7), betaln(1,7), betaln(314,7)]]
由此产生:
C = [[-1.609 , -1.609 , -1.609, -1.609 ]
[-32.070, -27.1618, -1.945, -33.732]]
实际上,我将有一个数组,其中包含大约27000列和行,从几行到几百行。因此,B也将是长度为1或2到几百的向量。我一直坚持这一点,我不知道什么是最好的(快速)方式做这件事。我在tensorflow上这样做,因此A和B是张量,但是numpy数组也可以正常工作。(或者发电机?我不知道……)
谢谢!你知道吗
^{} 是ufunc,这意味着它可以接受数组(在本例中,甚至是列表列表)作为输入。
A
和B
中的值将自动为broadcasted:对整个数组调用
betaln
一次要比对每对标量值多次调用betaln
快得多。你知道吗相关问题 更多 >
编程相关推荐