from scipy import *
from scipy import linalg
from numpy import random 
import pylab

####################################################

A = array([[0.7, 0.2], [0.3, 0.8]])
linalg.eig(A)

####################################################

A = array([[0.7, 0.2], [1, 0]])
b = [1, 1]
linalg.solve(A, b)

####################################################

A = array([[0.7, 0.2], [-0.7, -0.2], [1, 0]])
b = [1, -1, 1]
linalg.lstsq(A, b)

####################################################

def discrete_sample(probs):
    return sum(cumsum(probs)<random.random_sample())

####################################################

p = [0.7, 0.2, 0.1]
discrete_sample(p)

