def outerproduct(a, b):
    """Numeric.outerproduct([0.46474895,  0.46348238,  0.53923529,  0.46428344,  0.50223047], 
    [-0.16049719,  0.17086812,  0.1692107 ,  0.17433657,  0.1738235 ,
    0.17292975,  0.17553493,  0.17222987, -0.17038313,  0.17725782,
    0.18428386]) =>
         [[-0.0745909,   0.07941078,  0.07864049,  0.08102274,  0.08078429,  0.08036892,
            0.08157967,  0.08004365, -0.07918538,  0.08238038,  0.08564573]
          [-0.07438762,  0.07919436,  0.07842618,  0.08080193,  0.08056413,  0.08014989,
            0.08135735,  0.07982551, -0.07896958,  0.08215587,  0.08541232]
          [-0.08654575,  0.09213812,  0.09124438,  0.09400843,  0.09373177,  0.09324982,
            0.09465463,  0.09287243, -0.09187659,  0.09558367,  0.09937236]
          [-0.07451619,  0.07933124,  0.07856172,  0.08094158,  0.08070337,  0.08028842,
            0.08149796,  0.07996348, -0.07910606,  0.08229787,  0.08555994]
          [-0.08060658,  0.08581518,  0.08498277,  0.08755714,  0.08729946,  0.08685059,
            0.08815899,  0.08649909, -0.0855716,   0.08902428,  0.09255297]])"""
    result = zeros((len(a), len(b)))
    for i in range(len(a)):
        for j in range(len(b)):
            result[i][j] = a[i] * b[j]
    return result