Need help vectorizing code
Kevin K
richyokevin at gmail.com
Sat Jan 18 16:18:47 EST 2014
I didn't paste the whole function, note the ... before and after. I do use the values.
I want to get rid of one of the loops so that the computation becomes O(D). Assume vectors a and c should get populated during the compute, each being 1xD.
Thanks
On Saturday, January 18, 2014 12:51:25 PM UTC-8, Kevin K wrote:
> I have some code that I need help vectorizing.
>
> I want to convert the following to vector form, how can I? I want to get rid of the inner loop - apparently, it's possible to do so.
>
> X is an NxD matrix. y is a 1xD vector.
>
>
>
> def foo(X, y, mylambda, N, D, epsilon):
>
> ...
>
> for j in xrange(D):
>
> aj = 0
>
> cj = 0
>
> for i in xrange(N):
>
> aj += 2 * (X[i,j] ** 2)
>
> cj += 2 * (X[i,j] * (y[i] - w.transpose()*X[i].transpose() + w[j]*X[i,j]))
>
>
>
> ...
>
>
>
> If I call numpy.vectorize() on the function, it throws an error at runtime.
>
>
>
> Thanks
More information about the Python-list
mailing list