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
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