On Thu, Nov 12, 2015 at 8:57 AM, PythonDude <mjoerg.ph...@gmail.com> 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