小编nic*_*ckb的帖子

交错两个numpy索引数组,每个数组一个项目

我有两个有序的numpy数组,我想交错它们,以便我从第一个数组中取出一个项目,然后从第二个数据中获取另一个项目,然后返回到第一个 - 获取下一个项目大于我刚刚从中获取的项目第二个等等.这些实际上是其他数组的索引数组,只要操作是向量化的,我就可以对原始数组进行操作(但当然,作为向量操作处理索引数组会非常棒).

示例(可以假设数组的交集为空)

a = array([1,2,3,4,7,8,9,10,17])
b = array([5,6,13,14,15,19,21,23])
Run Code Online (Sandbox Code Playgroud)

我想得到[1,5,7,13,17,19]

python arrays numpy vectorization

12
推荐指数
1
解决办法
1382
查看次数

AngularJS和Twitter Bootstrap主题(或替代?)

我们正在寻找一个带有引导主题的应用程序(例如https://wrapbootstrap.com/theme/smartadmin-responsive-webapp-WB0573SK0),这样我们就可以获得看起来不错的用户界面,而无需在设计上投入太多.

问题是我们想要围绕AngularJS构建它,从我们读到的关于bootstrap的内容来看,它们并不能很好地协同工作.有一些解决方法,例如http://angular-ui.github.io/bootstrap/,但我们不确定它们是否适用于主题.有这方面的经验吗?

是否有任何类似于Bootstrap的框架可以选择(或购买)与AngularJS配合使用的丰富主题?

twitter-bootstrap angularjs angular-ui-bootstrap

12
推荐指数
3
解决办法
3万
查看次数

具有约束的梯度下降(拉格朗日乘数)

我试图使用梯度下降在N个参数中找到函数的最小值.但是我想这样做,同时将参数的绝对值之和限制为1(或<= 1,无关紧要).由于这个原因,我使用了拉格朗日乘数的方法,所以如果我的函数是f(x),我将最小化f(x)+ lambda*(g(x)-1)其中g(x)是平滑近似值参数绝对值的总和.

根据我的理解,当g(x)= 1时,此函数的梯度将仅为0,因此找到局部最小值的方法应该找到我的条件也满足的最小函数.问题是这个加法我的函数是无界的,因此Gradient Descent只是找到越来越大的lambdas,它们具有越来越大的参数(绝对值)并且永远不会收敛.

目前我正在使用CG的python(scipy)实现,所以我真的更喜欢不要求我自己重新编写/调整CG代码但使用现有方法的建议.

machine-learning gradient-descent

11
推荐指数
3
解决办法
1万
查看次数

使用带有statsmodel的OLS模型预测值

我使用OLS(多元线性回归)计算了一个模型.我将数据分为训练和测试(每半个),然后我想预测标签的下半部分的值.

model = OLS(labels[:half], data[:half])
predictions = model.predict(data[half:])
Run Code Online (Sandbox Code Playgroud)

问题是我得到并且错误:文件"/usr/local/lib/python2.7/dist-packages/statsmodels-0.5.0-py2.7-linux-i686.egg/statsmodels/regression/linear_model.py" ,第281行,预测返回np.dot(exog,params)ValueError:矩阵未对齐

我有以下数组形状:data.shape:(426,215)labels.shape:(426,)

如果我将输入转置为model.predict,我会得到一个结果,但形状为(426,213),所以我认为它也是错误的(我希望一个213个数字的向量作为标签预测):

model.predict(data[half:].T)
Run Code Online (Sandbox Code Playgroud)

知道如何让它工作吗?

python linear-regression pandas statsmodels

11
推荐指数
2
解决办法
3万
查看次数

用于广义特征值的Python eig不返回正确的特征向量

试图使用scipy的linalg.eig来解决广义特征值问题.然后我检查我得到的解决方案,似乎没有返回正确的特征向量.此外,文档建议返回的向量是规范化的,但事实并非如此(尽管这并不会让我感到烦恼).

以下是样本矩阵:

>>> a
array([[  2.05630374e-01,   8.89584493e-10,  -1.46171715e-06],
       [  8.89584493e-10,   2.38374743e-02,   9.43440334e-06],
       [ -1.46171715e-06,   9.43440334e-06,   1.39685787e-02]])
>>> b
array([[ 0.22501692, -0.07509864, -0.05774453],
       [-0.07509864,  0.02569336,  0.01976284],
       [-0.05774453,  0.01976284,  0.01524993]])
Run Code Online (Sandbox Code Playgroud)

运行eig我得到:

>>> w,v = linalg.eig(a,b)
>>> w
array([  3.08431414e-01+0.j,   5.31170281e+01+0.j,   6.06298605e+02+0.j])
>>> v
array([[-0.26014092, -0.46277857, -0.0224057 ],
       [ 0.76112351, -0.59384527, -0.83594841],
       [ 1.        , -1.        ,  1.        ]])
Run Code Online (Sandbox Code Playgroud)

然后测试结果:

>>> a*v[:,0]
array([[ -5.34928750e-02,   6.77083674e-10,  -1.46171715e-06],
       [ -2.31417329e-10,   1.81432622e-02,   9.43440334e-06],
       [  3.80252446e-07,   7.18074620e-06,   1.39685787e-02]])
>>> w[0]*b*v[:,0]
array([[-0.01805437+0.j, -0.01762974+0.j, -0.01781023+0.j],
       [ 0.00602559-0.j,  0.00603163+0.j,  0.00609548+0.j], …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy eigenvector

4
推荐指数
1
解决办法
2919
查看次数