On Apr 16, 12:41 pm, Bastian Weber <bastian.we...@gmx-topmail.de>
wrote:
> what is the proper way to convert a sage matrix to a numpy 2d-array?
>

Hi, well, basically, I don't think you have to convert it except you
need it for some special applications. Sage can do arithmetic over the
matrices. However, this short session should answer all your
questions:


sage: m = matrix(RDF, 2,  range(4)); m
[0.0 1.0]
[2.0 3.0]
sage: type(m)
<type 'sage.matrix.matrix_real_double_dense.Matrix_real_double_dense'>

sage: n = m.numpy()
sage: type(n)
<type 'numpy.ndarray'>

# and back again:
sage: type(matrix(n))
<type 'sage.matrix.matrix_real_double_dense.Matrix_real_double_dense'>

sage: n
array([[ 0.,  1.],
       [ 2.,  3.]])

sage: n*n
array([[ 0.,  1.],
       [ 4.,  9.]])

# n*n is not the matrix product!
# but it is for sage matrices:

sage: m*m
[ 2.0  3.0]
[ 6.0 11.0]

# you need "dot" from numpy

sage: from numpy import dot
sage: dot(n,n)
array([[  2.,   3.],
       [  6.,  11.]])

last note: RDF = real-double-field, i.e. the "pseudo" field of double
values the cpu and numpy uses by default.

H

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to