Пример #1
0
def partial_pca(mat, nev=6, nt=1):
    _check_row_float32(mat)
    n, d = mat.shape

    avg = mat.mean(axis=0)
    mat = mat - avg[numpy.newaxis, :]

    singvals = numpy.empty(nev, dtype=numpy.float32)
    # pdb.set_trace()

    pcamat = yael.fmat_new_pca_part(d, n, nev, yael.numpy_to_fvec_ref(mat), yael.numpy_to_fvec_ref(singvals))
    assert pcamat != None

    # print "SVs", singvals
    pcamat = yael.fvec.acquirepointer(pcamat)
    pcamat = yael.fvec_to_numpy(pcamat, (nev, d))

    return avg, singvals, pcamat
Пример #2
0
def partial_pca(mat, nev=6, nt=1):
    _check_row_float32(mat)
    n, d = mat.shape

    avg = mat.mean(axis=0)
    mat = mat - avg[numpy.newaxis, :]

    singvals = numpy.empty(nev, dtype=numpy.float32)
    # pdb.set_trace()

    pcamat = yael.fmat_new_pca_part(d, n, nev, yael.numpy_to_fvec_ref(mat),
                                    yael.numpy_to_fvec_ref(singvals))
    assert pcamat != None

    #print "SVs", singvals
    pcamat = yael.fvec.acquirepointer(pcamat)
    pcamat = yael.fvec_to_numpy(pcamat, (nev, d))

    return avg, singvals, pcamat