- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通过python实现的方式如下
import numpy as np
import math
def f(W, V, mu, sigma, q, w):
A = np.tile(1 + mu + math.sqrt(2)*sigma*q, (np.size(W), 1))
_W = (A.T * W).T
_W = w * V(np.ravel(_W)).reshape(np.size(W), len(q))
return np.sum(_W, axis=1)
函数的主要输入是W
。参数 q
和 w
始终相同。对于 W
,函数被矢量化,如下例所示:
f(np.asarray([100, 10320, 103]), np.log, 0.03, 0.1, np.polynomial.hermite.hermgauss(10)[0], np.polynomial.hermite.hermgauss(10)[1])
Out: array([ 8.20636769, 16.42464925, 8.2587593 ])
如您所见,mu
和 sigma
是固定的。我想知道是否可以进一步矢量化它,即 mu
和 sigma
将是相同长度的数组。目前,我会这样做:
mu = [0.03, 0.05, 0.1]
sigma = [0.1, 0.12, 0.20]
[f(np.asarray([100, 10320, 103]), np.log, mu[i], sigma[i], np.polynomial.hermite.hermgauss(10)[0], np.polynomial.hermite.hermgauss(10)[1]) for i in range(0, len(mu))]
Out:
[array([ 8.20636769, 16.42464925, 8.2587593 ]),
array([ 8.23711733, 16.4553989 , 8.28950895]),
array([ 8.30043707, 16.51871863, 8.35282868])]
在我的真实示例中,列表要大得多,我对不同的 mu
和 sigma
进行了多处理。但是,由于我多次这样做,我想知道我是否可以以矢量化形式更有效地为 mu
和 sigma
做这件事。
最佳答案
mu
和sigma
的唯一用途是构造A
:
1 + mu[0] + math.sqrt(2)*sigma[0]*q
要为 mu
和 sigma
使用数组而不是标量,您可以一次构造所有的 A
:
1 + mu + math.sqrt(2)*sigma*q[:,np.newaxis]
这为您提供了一个形状为 (10, 3)
的数组;第二个维度匹配 len(mu)
和 len(sigma)
因为 newaxis
告诉 NumPy 你想扩展那个维度的形状来匹配其他数组。
您可以从那里继续:通过 tile
的咒语构建完整的 A
集,然后一次执行所有乘法(可能使用 einsum
,等等。这留给读者很多练习,但如果你一步一个脚印,我认为你可以做到。
关于python-2.7 - 如何进一步向量化这个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48644004/
我有这个: const {ops} = getOplogStreamInterpreter(strm); ops.del.subscribe(v => { console.log('delete
我四处搜索,据我所知,POST 表单请求已被限制为 10MB (http://golang.org/src/net/http/request.go#L721)。 如果我要在我的 ServeHTTP 方
我是一名优秀的程序员,十分优秀!