There as a general n-dimensional SWT for Python in the PyWavelets package as of the 0.5.0 release.
Basic usage with
data stored in a NumPy array would be as follows (shown here for a 4-level decomposition and Debauchies 'db2' wavelet). PyWavelets uses the same wavelet naming conventions as the Matlab Wavelet Toolbox.
coeffs = pywt.swtn(data, wavelet='db2', level=4)
The example above takes <2 seconds for a 128x128x128 data array on my system.
If you are willing to build from source, there is also an n-dimensional inverse SWT available in the master branch. Note that the inverse stationary wavelet transform is not currently implemented in a very efficient manner (particular for larger number of levels of decomposition).
In 3D, the SWT is redundant by a factor of
(1 + 7*L) for an
L-level decomposition (Although the implementation in PyWavelets currently returns the approximation coefficients at every level, not just the final one, leading to a redundancy of
8*L in 3D).