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