summaryrefslogtreecommitdiff
path: root/numpy/matlib.py
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/matlib.py')
-rw-r--r--numpy/matlib.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/numpy/matlib.py b/numpy/matlib.py
new file mode 100644
index 000000000..a4720bc3c
--- /dev/null
+++ b/numpy/matlib.py
@@ -0,0 +1,65 @@
+from numpy.core.defmatrix import matrix, asmatrix
+from numpy import ndarray, array
+import numpy as N
+from numpy import *
+
+__version__ = N.__version__
+
+__all__ = N.__all__[:] # copy numpy namespace
+__all__ += ['rand', 'randn', 'repmat']
+
+def empty(shape, dtype=None, order='C'):
+ """return an empty matrix of the given shape
+ """
+ return ndarray.__new__(matrix, shape, dtype, order=order)
+
+def ones(shape, dtype=None, order='C'):
+ """return a matrix initialized to all ones
+ """
+ a = ndarray.__new__(matrix, shape, dtype, order=order)
+ a.fill(1)
+ return a
+
+def zeros(shape, dtype=None, order='C'):
+ """return a matrix initialized to all zeros
+ """
+ a = ndarray.__new__(matrix, shape, dtype, order=order)
+ a.fill(0)
+ return a
+
+def identity(n,dtype=None):
+ """identity(n) returns the identity matrix of shape n x n.
+ """
+ a = array([1]+n*[0],dtype=dtype)
+ b = empty((n,n),dtype=dtype)
+ b.flat = a
+ return b
+
+def eye(n,M=None, k=0, dtype=float):
+ return asmatrix(N.eye(n,M,k,dtype))
+
+def rand(*args):
+ if isinstance(args[0], tuple):
+ args = args[0]
+ return asmatrix(N.random.rand(*args))
+
+def randn(*args):
+ if isinstance(args[0], tuple):
+ args = args[0]
+ return asmatrix(N.random.randn(*args))
+
+def repmat(a, m, n):
+ """Repeat a 0-d to 2-d array mxn times
+ """
+ a = asanyarray(a)
+ ndim = a.ndim
+ if ndim == 0:
+ origrows, origcols = (1,1)
+ elif ndim == 1:
+ origrows, origcols = (1, a.shape[0])
+ else:
+ origrows, origcols = a.shape
+ rows = origrows * m
+ cols = origcols * n
+ c = a.reshape(1,a.size).repeat(m, 0).reshape(rows, origcols).repeat(n,0)
+ return c.reshape(rows, cols)