On Thu, Nov 12, 2015 at 8:57 AM, PythonDude <[email protected]> wrote:
> Hi all,
>
> I've come around a webpage with python-tutorial/description for obtaining
> something and I'll solve this:
>
> R = p^T w
>
> where R is a vector and p^T is the transpose of another vector.
>
> ...
> p is a Nx1 column vector, so p^T turns into a 1xN row vector which can be
> multiplied with the
> Nx1 weight (column) vector w to give a scalar result. This is equivalent to
> the dot
> product used in the code. Keep in mind that Python has a reversed definition
> of
> rows and columns and the accurate NumPy version of the previous equation would
> be R = w * p.T
> ...
>
> (source: http://blog.quantopian.com/markowitz-portfolio-optimization-2/ )
>
> I don't understand this: "Keep in mind that Python has a reversed definition
> of
> rows and columns and the accurate NumPy version of the previous equation would
> be R = w * p.T"
>
> Not true for numpy, is it? This page:
> http://mathesaurus.sourceforge.net/matlab-numpy.html says it python and
> matlab looks quite similar...
>
> Anyone could please explain or elaborate on exactly this (quote): "Keep in
> mind that Python has a reversed definition of rows and columns"???
>
> That I don't understand - thank you for any
> hints/guidance/explanations/ideas/suggestions etc!
py> import numpy
py> p = numpy.reshape(range(5), (5,1))
py> p
array([[0],
[1],
[2],
[3],
[4]])
py> p.T
array([[0, 1, 2, 3, 4]])
py> p.dot(p.T)
array([[ 0, 0, 0, 0, 0],
[ 0, 1, 2, 3, 4],
[ 0, 2, 4, 6, 8],
[ 0, 3, 6, 9, 12],
[ 0, 4, 8, 12, 16]])
py> p.T.dot(p)
array([[30]])
py> m = numpy.asmatrix(p)
py> m
matrix([[0],
[1],
[2],
[3],
[4]])
py> m.T
matrix([[0, 1, 2, 3, 4]])
py> m * m.T
matrix([[ 0, 0, 0, 0, 0],
[ 0, 1, 2, 3, 4],
[ 0, 2, 4, 6, 8],
[ 0, 3, 6, 9, 12],
[ 0, 4, 8, 12, 16]])
py> m.T * m
matrix([[30]])
Yeah, I don't know what that person is talking about either. It looks
correct to me.
--
https://mail.python.org/mailman/listinfo/python-list