【发布时间】:2010-10-27 06:17:15
【问题描述】:
是否可以在 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]。
【问题讨论】: