class documentation

class matrix(N.ndarray):

View In Hierarchy

matrix(data, dtype=None, copy=True)

Note

It is no longer recommended to use this class, even for linear algebra. Instead use regular arrays. The class may be removed in the future.

Returns a matrix from an array-like object, or from a string of data. A matrix is a specialized 2-D array that retains its 2-D nature through operations. It has certain special operators, such as * (matrix multiplication) and ** (matrix power).

Parameters

data : array_like or string
If data is a string, it is interpreted as a matrix with commas or spaces separating columns, and semicolons separating rows.
dtype : data-type
Data-type of the output matrix.
copy : bool
If data is already an ndarray, then this flag determines whether the data is copied (the default), or whether a view is constructed.

See Also

array

Examples

>>> a = np.matrix('1 2; 3 4')
>>> a
matrix([[1, 2],
        [3, 4]])
>>> np.matrix([[1, 2], [3, 4]])
matrix([[1, 2],
        [3, 4]])
Method __array​_finalize__ Undocumented
Method __getitem__ Undocumented
Method __imul__ Undocumented
Method __ipow__ Undocumented
Method __mul__ Undocumented
Method __new__ Undocumented
Method __pow__ Undocumented
Method __rmul__ Undocumented
Method __rpow__ Undocumented
Method ​_align A convenience function for operations that need to preserve axis orientation.
Method ​_collapse A convenience function for operations that want to collapse to a scalar like _align, but are using keepdims=True
Method all Test whether all matrix elements along a given axis evaluate to True.
Method any Test whether any array element along a given axis evaluates to True.
Method argmax Indexes of the maximum values along an axis.
Method argmin Indexes of the minimum values along an axis.
Method flatten Return a flattened copy of the matrix.
Method max Return the maximum value along an axis.
Method mean Returns the average of the matrix elements along the given axis.
Method min Return the minimum value along an axis.
Method prod Return the product of the array elements over the given axis.
Method ptp Peak-to-peak (maximum - minimum) value along the given axis.
Method ravel Return a flattened matrix.
Method squeeze Return a possibly reshaped matrix.
Method std Return the standard deviation of the array elements along the given axis.
Method sum Returns the sum of the matrix elements, along the given axis.
Method tolist Return the matrix as a (possibly nested) list.
Method var Returns the variance of the matrix elements, along the given axis.
Class Variable __array​_priority__ Undocumented
Instance Variable ​_getitem Undocumented
Instance Variable shape Undocumented
Property A Return self as an ndarray object.
Property A1 Return self as a flattened ndarray.
Property H Returns the (complex) conjugate transpose of self.
Property I Returns the (multiplicative) inverse of invertible self.
Property T Returns the transpose of the matrix.
def __array_finalize__(self, obj):

Undocumented

def __getitem__(self, index):

Undocumented

def __imul__(self, other):

Undocumented

def __ipow__(self, other):

Undocumented

def __mul__(self, other):

Undocumented

def __new__(subtype, data, dtype=None, copy=True):

Undocumented

def __pow__(self, other):

Undocumented

def __rmul__(self, other):

Undocumented

def __rpow__(self, other):

Undocumented

def _align(self, axis):
A convenience function for operations that need to preserve axis orientation.
def _collapse(self, axis):
A convenience function for operations that want to collapse to a scalar like _align, but are using keepdims=True
def all(self, axis=None, out=None):

Test whether all matrix elements along a given axis evaluate to True.

Parameters

See numpy.all for complete descriptions

See Also

numpy.all

Notes

This is the same as ndarray.all, but it returns a matrix object.

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> y = x[0]; y
matrix([[0, 1, 2, 3]])
>>> (x == y)
matrix([[ True,  True,  True,  True],
        [False, False, False, False],
        [False, False, False, False]])
>>> (x == y).all()
False
>>> (x == y).all(0)
matrix([[False, False, False, False]])
>>> (x == y).all(1)
matrix([[ True],
        [False],
        [False]])
def any(self, axis=None, out=None):

Test whether any array element along a given axis evaluates to True.

Refer to numpy.any for full documentation.

Parameters

axis : int, optional
Axis along which logical OR is performed
out : ndarray, optional
Output to existing array instead of creating new one, must have same shape as expected output

Returns

any : bool, ndarray
Returns a single bool if axis is None; otherwise, returns ndarray
def argmax(self, axis=None, out=None):

Indexes of the maximum values along an axis.

Return the indexes of the first occurrences of the maximum values along the specified axis. If axis is None, the index is for the flattened matrix.

Parameters

See numpy.argmax for complete descriptions

See Also

numpy.argmax

Notes

This is the same as ndarray.argmax, but returns a matrix object where ndarray.argmax would return an ndarray.

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.argmax()
11
>>> x.argmax(0)
matrix([[2, 2, 2, 2]])
>>> x.argmax(1)
matrix([[3],
        [3],
        [3]])
def argmin(self, axis=None, out=None):

Indexes of the minimum values along an axis.

Return the indexes of the first occurrences of the minimum values along the specified axis. If axis is None, the index is for the flattened matrix.

Parameters

See numpy.argmin for complete descriptions.

See Also

numpy.argmin

Notes

This is the same as ndarray.argmin, but returns a matrix object where ndarray.argmin would return an ndarray.

Examples

>>> x = -np.matrix(np.arange(12).reshape((3,4))); x
matrix([[  0,  -1,  -2,  -3],
        [ -4,  -5,  -6,  -7],
        [ -8,  -9, -10, -11]])
>>> x.argmin()
11
>>> x.argmin(0)
matrix([[2, 2, 2, 2]])
>>> x.argmin(1)
matrix([[3],
        [3],
        [3]])
def flatten(self, order='C'):

Return a flattened copy of the matrix.

All N elements of the matrix are placed into a single row.

Parameters

order : {'C', 'F', 'A', 'K'}, optional
'C' means to flatten in row-major (C-style) order. 'F' means to flatten in column-major (Fortran-style) order. 'A' means to flatten in column-major order if m is Fortran contiguous in memory, row-major order otherwise. 'K' means to flatten m in the order the elements occur in memory. The default is 'C'.

Returns

y : matrix
A copy of the matrix, flattened to a (1, N) matrix where N is the number of elements in the original matrix.

See Also

ravel : Return a flattened array. flat : A 1-D flat iterator over the matrix.

Examples

>>> m = np.matrix([[1,2], [3,4]])
>>> m.flatten()
matrix([[1, 2, 3, 4]])
>>> m.flatten('F')
matrix([[1, 3, 2, 4]])
def max(self, axis=None, out=None):

Return the maximum value along an axis.

Parameters

See amax for complete descriptions

See Also

amax, ndarray.max

Notes

This is the same as ndarray.max, but returns a matrix object where ndarray.max would return an ndarray.

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.max()
11
>>> x.max(0)
matrix([[ 8,  9, 10, 11]])
>>> x.max(1)
matrix([[ 3],
        [ 7],
        [11]])
def mean(self, axis=None, dtype=None, out=None):

Returns the average of the matrix elements along the given axis.

Refer to numpy.mean for full documentation.

See Also

numpy.mean

Notes

Same as ndarray.mean except that, where that returns an ndarray, this returns a matrix object.

Examples

>>> x = np.matrix(np.arange(12).reshape((3, 4)))
>>> x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.mean()
5.5
>>> x.mean(0)
matrix([[4., 5., 6., 7.]])
>>> x.mean(1)
matrix([[ 1.5],
        [ 5.5],
        [ 9.5]])
def min(self, axis=None, out=None):

Return the minimum value along an axis.

Parameters

See amin for complete descriptions.

See Also

amin, ndarray.min

Notes

This is the same as ndarray.min, but returns a matrix object where ndarray.min would return an ndarray.

Examples

>>> x = -np.matrix(np.arange(12).reshape((3,4))); x
matrix([[  0,  -1,  -2,  -3],
        [ -4,  -5,  -6,  -7],
        [ -8,  -9, -10, -11]])
>>> x.min()
-11
>>> x.min(0)
matrix([[ -8,  -9, -10, -11]])
>>> x.min(1)
matrix([[ -3],
        [ -7],
        [-11]])
def prod(self, axis=None, dtype=None, out=None):

Return the product of the array elements over the given axis.

Refer to prod for full documentation.

See Also

prod, ndarray.prod

Notes

Same as ndarray.prod, except, where that returns an ndarray, this returns a matrix object instead.

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.prod()
0
>>> x.prod(0)
matrix([[  0,  45, 120, 231]])
>>> x.prod(1)
matrix([[   0],
        [ 840],
        [7920]])
def ptp(self, axis=None, out=None):

Peak-to-peak (maximum - minimum) value along the given axis.

Refer to numpy.ptp for full documentation.

See Also

numpy.ptp

Notes

Same as ndarray.ptp, except, where that would return an ndarray object, this returns a matrix object.

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.ptp()
11
>>> x.ptp(0)
matrix([[8, 8, 8, 8]])
>>> x.ptp(1)
matrix([[3],
        [3],
        [3]])
def ravel(self, order='C'):

Return a flattened matrix.

Refer to numpy.ravel for more documentation.

Parameters

order : {'C', 'F', 'A', 'K'}, optional
The elements of m are read using this index order. 'C' means to index the elements in C-like order, with the last axis index changing fastest, back to the first axis index changing slowest. 'F' means to index the elements in Fortran-like index order, with the first index changing fastest, and the last index changing slowest. Note that the 'C' and 'F' options take no account of the memory layout of the underlying array, and only refer to the order of axis indexing. 'A' means to read the elements in Fortran-like index order if m is Fortran contiguous in memory, C-like order otherwise. 'K' means to read the elements in the order they occur in memory, except for reversing the data when strides are negative. By default, 'C' index order is used.

Returns

ret : matrix
Return the matrix flattened to shape (1, N) where N is the number of elements in the original matrix. A copy is made only if necessary.

See Also

matrix.flatten : returns a similar output matrix but always a copy matrix.flat : a flat iterator on the array. numpy.ravel : related function which returns an ndarray

def squeeze(self, axis=None):

Return a possibly reshaped matrix.

Refer to numpy.squeeze for more documentation.

Parameters

axis : None or int or tuple of ints, optional
Selects a subset of the axes of length one in the shape. If an axis is selected with shape entry greater than one, an error is raised.

Returns

squeezed : matrix
The matrix, but as a (1, N) matrix if it had shape (N, 1).

See Also

numpy.squeeze : related function

Notes

If m has a single column then that column is returned as the single row of a matrix. Otherwise m is returned. The returned matrix is always either m itself or a view into m. Supplying an axis keyword argument will not affect the returned matrix but it may cause an error to be raised.

Examples

>>> c = np.matrix([[1], [2]])
>>> c
matrix([[1],
        [2]])
>>> c.squeeze()
matrix([[1, 2]])
>>> r = c.T
>>> r
matrix([[1, 2]])
>>> r.squeeze()
matrix([[1, 2]])
>>> m = np.matrix([[1, 2], [3, 4]])
>>> m.squeeze()
matrix([[1, 2],
        [3, 4]])
def std(self, axis=None, dtype=None, out=None, ddof=0):

Return the standard deviation of the array elements along the given axis.

Refer to numpy.std for full documentation.

See Also

numpy.std

Notes

This is the same as ndarray.std, except that where an ndarray would be returned, a matrix object is returned instead.

Examples

>>> x = np.matrix(np.arange(12).reshape((3, 4)))
>>> x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.std()
3.4520525295346629 # may vary
>>> x.std(0)
matrix([[ 3.26598632,  3.26598632,  3.26598632,  3.26598632]]) # may vary
>>> x.std(1)
matrix([[ 1.11803399],
        [ 1.11803399],
        [ 1.11803399]])
def sum(self, axis=None, dtype=None, out=None):

Returns the sum of the matrix elements, along the given axis.

Refer to numpy.sum for full documentation.

See Also

numpy.sum

Notes

This is the same as ndarray.sum, except that where an ndarray would be returned, a matrix object is returned instead.

Examples

>>> x = np.matrix([[1, 2], [4, 3]])
>>> x.sum()
10
>>> x.sum(axis=1)
matrix([[3],
        [7]])
>>> x.sum(axis=1, dtype='float')
matrix([[3.],
        [7.]])
>>> out = np.zeros((2, 1), dtype='float')
>>> x.sum(axis=1, dtype='float', out=np.asmatrix(out))
matrix([[3.],
        [7.]])
def tolist(self):

Return the matrix as a (possibly nested) list.

See ndarray.tolist for full documentation.

See Also

ndarray.tolist

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.tolist()
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
def var(self, axis=None, dtype=None, out=None, ddof=0):

Returns the variance of the matrix elements, along the given axis.

Refer to numpy.var for full documentation.

See Also

numpy.var

Notes

This is the same as ndarray.var, except that where an ndarray would be returned, a matrix object is returned instead.

Examples

>>> x = np.matrix(np.arange(12).reshape((3, 4)))
>>> x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.var()
11.916666666666666
>>> x.var(0)
matrix([[ 10.66666667,  10.66666667,  10.66666667,  10.66666667]]) # may vary
>>> x.var(1)
matrix([[1.25],
        [1.25],
        [1.25]])
__array_priority__: float =

Undocumented

_getitem: bool =

Undocumented

shape: tuple[int, ...] =

Undocumented

@property
A =

Return self as an ndarray object.

Equivalent to np.asarray(self).

Parameters

None

Returns

ret : ndarray
self as an ndarray

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.getA()
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
@property
A1 =

Return self as a flattened ndarray.

Equivalent to np.asarray(x).ravel()

Parameters

None

Returns

ret : ndarray
self, 1-D, as an ndarray

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4))); x
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
>>> x.getA1()
array([ 0,  1,  2, ...,  9, 10, 11])
@property
H =

Returns the (complex) conjugate transpose of self.

Equivalent to np.transpose(self) if self is real-valued.

Parameters

None

Returns

ret : matrix object
complex conjugate transpose of self

Examples

>>> x = np.matrix(np.arange(12).reshape((3,4)))
>>> z = x - 1j*x; z
matrix([[  0. +0.j,   1. -1.j,   2. -2.j,   3. -3.j],
        [  4. -4.j,   5. -5.j,   6. -6.j,   7. -7.j],
        [  8. -8.j,   9. -9.j,  10.-10.j,  11.-11.j]])
>>> z.getH()
matrix([[ 0. -0.j,  4. +4.j,  8. +8.j],
        [ 1. +1.j,  5. +5.j,  9. +9.j],
        [ 2. +2.j,  6. +6.j, 10.+10.j],
        [ 3. +3.j,  7. +7.j, 11.+11.j]])
@property
I =

Returns the (multiplicative) inverse of invertible self.

Parameters

None

Returns

ret : matrix object
If self is non-singular, ret is such that ret * self == self * ret == np.matrix(np.eye(self[0,:].size)) all return True.

Raises

numpy.linalg.LinAlgError: Singular matrix
If self is singular.

See Also

linalg.inv

Examples

>>> m = np.matrix('[1, 2; 3, 4]'); m
matrix([[1, 2],
        [3, 4]])
>>> m.getI()
matrix([[-2. ,  1. ],
        [ 1.5, -0.5]])
>>> m.getI() * m
matrix([[ 1.,  0.], # may vary
        [ 0.,  1.]])
@property
T =

Returns the transpose of the matrix.

Does not conjugate! For the complex conjugate transpose, use .H.

Parameters

None

Returns

ret : matrix object
The (non-conjugated) transpose of the matrix.

See Also

transpose, getH

Examples

>>> m = np.matrix('[1, 2; 3, 4]')
>>> m
matrix([[1, 2],
        [3, 4]])
>>> m.getT()
matrix([[1, 3],
        [2, 4]])