是否有可能使用矢量参数在numpy中进行数组广播?Numpy数组广播与矢量参数
例如,我知道我能做到这一点
def bernoulli_fraction_to_logodds(fraction):
if fraction == 1.0:
return inf
return log(fraction/(1 - fraction))
bernoulli_fraction_to_logodds = numpy.frompyfunc(bernoulli_fraction_to_logodds, 1, 1)
,并把它与整个阵列工作。如果我有一个采用2元素矢量并返回2元素矢量的函数呢?我可以传递一个2元素向量的数组吗?例如,
def beta_ml_fraction(beta):
a = beta[0]
b = beta[1]
return a/(a + b)
beta_ml_fraction = numpy.frompyfunc(beta_ml_fraction, 1, 1)
不幸的是,这是行不通的。是否有与from_py_func类似的功能。当他们是2元素向量时,我可以绕过这个问题,但是当他们是n元素向量时呢?
因此,输入(2,3)
应该给0.4
,但输入[[2,3], [3,3]]
应该给[0.4, 0.5]
。
谢谢,这解决了我的问题。 – 2010-10-26 22:00:14