[Numpy-discussion] Matrix Class

Colin J. Williams cjwilliams43 at gmail.com
Thu Feb 12 18:44:07 EST 2015


Thanks Ryan.

There are a number of good thoughts in your message.  I'll try to keep
track of them.

Another respondent reported different results than mine.  I'm in the
process of re-installing to check.

Colin W.

On 11 February 2015 at 16:18, Ryan Nelson <rnelsonchem at gmail.com> wrote:

> Colin,
>
> I currently use Py3.4 and Numpy 1.9.1. However, I built a quick test conda
> environment with Python2.7 and Numpy 1.7.0, and I get the same:
>
> ############
> Python 2.7.9 |Continuum Analytics, Inc.| (default, Dec 18 2014, 16:57:52)
> [MSC v
> .1500 64 bit (AMD64)]
> Type "copyright", "credits" or "license" for more information.
>
> IPython 2.3.1 -- An enhanced Interactive Python.
> Anaconda is brought to you by Continuum Analytics.
> Please check out: http://continuum.io/thanks and https://binstar.org
> ?         -> Introduction and overview of IPython's features.
> %quickref -> Quick reference.
> help      -> Python's own help system.
> object?   -> Details about 'object', use 'object??' for extra details.
>
> In [1]: import numpy as np
>
> In [2]: np.__version__
> Out[2]: '1.7.0'
>
> In [3]: np.mat([4,'5',6])
> Out[3]:
> matrix([['4', '5', '6']],
>        dtype='|S1')
>
> In [4]: np.mat([4,'5',6], dtype=int)
> Out[4]: matrix([[4, 5, 6]])
> ###############
>
> As to your comment about coordinating with Statsmodels, you should see the
> links in the thread that Alan posted:
> http://permalink.gmane.org/gmane.comp.python.numeric.general/56516
> http://permalink.gmane.org/gmane.comp.python.numeric.general/56517
> Josef's comments at the time seem to echo the issues the devs (and others)
> have with the matrix class. Maybe things have changed with Statsmodels.
>
> I know I mentioned Sage and SageMathCloud before. I'll just point out that
> there are folks that use this for real research problems, not just as a
> pedagogical tool. They have a Matrix/vector/column_matrix class that do
> what you were expecting from your problems posted above. Indeed below is a
> (truncated) cut and past from a Sage Worksheet. (See
> http://www.sagemath.org/doc/tutorial/tour_linalg.html)
> ##########
> In : Matrix([1,'2',3])
> Error in lines 1-1
> Traceback (most recent call last):
> TypeError: unable to find a common ring for all elements
>
> In : Matrix([[1,2,3],[4,5]])
> ValueError: List of rows is not valid (rows are wrong types or lengths)
>
> In : vector([1,2,3])
> (1, 2, 3)
>
> In : column_matrix([1,2,3])
> [1]
> [2]
> [3]
> ##########
>
> Large portions of the custom code and wrappers in Sage are written in
> Python. I don't think their Matrix object is a subclass of ndarray, so
> perhaps you could strip out the Matrix stuff from here to make a separate
> project with just the Matrix stuff, if you don't want to go through the
> Sage interface.
>
>
> On Wed, Feb 11, 2015 at 11:54 AM, cjw <cjw at ncf.ca> wrote:
>
>>
>> On 11-Feb-15 10:21 AM, Ryan Nelson wrote:
>>
>> So:
>>
>> In [2]: np.mat([4,'5',6])
>> Out[2]:
>> matrix([['4', '5', '6']], dtype='<U11')
>>
>> In [3]: np.mat([4,'5',6], dtype=int)
>> Out[3]: matrix([[4, 5, 6]])
>>
>>
>>  Thanks Ryan,
>>
>> We are not singing from the same hymn book.
>>
>> Using PyScripter, I get:
>>
>> *** Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit
>> (AMD64)] on win32. ***
>> >>> import numpy as np
>> >>> print('Numpy version: ', np.__version__)
>> ('Numpy version: ', '1.9.0')
>> >>>
>>
>> Could you say which version you are using please?
>>
>> Colin W
>>
>>  On Tue, Feb 10, 2015 at 5:07 PM, cjw <cjw at ncf.ca> <cjw at ncf.ca> wrote:
>>
>>
>>  It seems to be agreed that there are weaknesses in the existing Numpy
>> Matrix
>> Class.
>>
>> Some problems are illustrated below.
>>
>> I'll try to put some suggestions over the coming weeks and would appreciate
>> comments.
>>
>> Colin W.
>>
>> Test Script:
>>
>> if __name__ == '__main__':
>>     a= mat([4, 5, 6])                   # Good
>>     print('a: ', a)
>>     b= mat([4, '5', 6])                 # Not the expected result
>>     print('b: ', b)
>>     c= mat([[4, 5, 6], [7, 8]])         # Wrongly accepted as rectangular
>>     print('c: ', c)
>>     d= mat([[1, 2, 3]])
>>     try:
>>         d[0, 1]= 'b'                    # Correctly flagged, not numeric
>>     except ValueError:
>>         print("d[0, 1]= 'b'             # Correctly flagged, not numeric",
>> '
>> ValueError')
>>     print('d: ', d)
>>
>> Result:
>>
>> *** Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit
>> (AMD64)] on win32. ***
>>
>>     a:  [[4 5 6]]
>> b:  [['4' '5' '6']]
>> c:  [[[4, 5, 6] [7, 8]]]
>> d[0, 1]= 'b'             # Correctly flagged, not numeric  ValueError
>> d:  [[1 2 3]]
>>
>>
>>
>>
>> --
>> View this message in context:http://numpy-discussion.10968.n7.nabble.com/Matrix-Class-tp39719.html
>> Sent from the Numpy-discussion mailing list archive at Nabble.com.
>> _______________________________________________
>> NumPy-Discussion mailing listNumPy-Discussion at scipy.orghttp://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>>
>> _______________________________________________
>> NumPy-Discussion mailing listNumPy-Discussion at scipy.orghttp://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20150212/3a307463/attachment.html>


More information about the NumPy-Discussion mailing list