Source code for bioa.util.matrix
'''
========================
Matrix Utility Functions
========================
'''
__all__ = ['matrix_rank']
__author__ = '''Nicholas Mancuso (nick.mancuso@gmail.com)'''
# Copyright (C) 2011-2012 by
# Nicholas Mancuso <nick.mancuso@gmail.com>
# Bassam Tork <basamt@gmail.com>
# All rights reserved.
# BSD license.
from numpy.linalg import svd
from numpy import sum, where
# Found at...
# http://mail.scipy.org/pipermail/numpy-discussion/2008-February/031218.html
[docs]def matrix_rank(matrix, tol=1e-8):
'''
Compute the rank of a matrix
using the singular value decomposition
and counting the non-zero rows
'''
s = svd(matrix, compute_uv=0)
return sum(where(s > tol, 1, 0))