Both SciPy and Numpy have built in functions for singular value decomposition (SVD). The commands are basically scipy.linalg.svd and numpy.linalg.svd.
scipy.linalg.svd
numpy.linalg.svd
Apart from the error checking, the actual work seems to be done within lapack both with numpy and scipy.
numpy
scipy
Without having done any benchmarking, I guess the performance should be identical.