<p dir="auto">It appears that <code class="notranslate">numpy.linalg.svd</code> has different outputs between 1.15.4 and 1.16.3 -- and I don't see any hints that this should happen in the changelog.</p>
<h3 dir="auto">Reproducing code example:</h3>

<p dir="auto">If you run numpy==1.15.4 with the following input, you get the following</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="In [20]: np.random.seed(0)

In [21]: X = np.random.randn(100, 100) * 10

In [22]: u, s, v = np.linalg.svd(X)

In [23]: s[:5]
Out[23]:
array([193.6995948 , 183.01489365, 180.94983595, 178.47342134,
       174.07146491])

In [24]: u[:5, :5]
Out[24]:
array([[-0.12777193,  0.1473861 , -0.04626332,  0.09269663,  0.12149756],
       [-0.23535239,  0.06543527, -0.02588301, -0.05401032, -0.02436388],
       [ 0.09956489, -0.07108259, -0.10083294,  0.16710062, -0.0333519 ],
       [-0.05718053, -0.11184903, -0.12280465,  0.04707958,  0.16647603],
       [ 0.25422798,  0.01464547, -0.15071626, -0.03225463, -0.12620621]])

In [25]: np.mean(X - u @ np.diag(s) @ v)
Out[25]: 1.336599234069702e-16

In [26]: np.std(X - u @ np.diag(s) @ v)
Out[26]: 2.0947185697750298e-14"><pre class="notranslate"><span class="pl-v">In</span> [<span class="pl-c1">20</span>]: <span class="pl-s1">np</span>.<span class="pl-s1">random</span>.<span class="pl-en">seed</span>(<span class="pl-c1">0</span>)

<span class="pl-v">In</span> [<span class="pl-c1">21</span>]: <span class="pl-v">X</span> <span class="pl-c1">=</span> <span class="pl-s1">np</span>.<span class="pl-s1">random</span>.<span class="pl-en">randn</span>(<span class="pl-c1">100</span>, <span class="pl-c1">100</span>) <span class="pl-c1">*</span> <span class="pl-c1">10</span>

<span class="pl-v">In</span> [<span class="pl-c1">22</span>]: <span class="pl-s1">u</span>, <span class="pl-s1">s</span>, <span class="pl-s1">v</span> <span class="pl-c1">=</span> <span class="pl-s1">np</span>.<span class="pl-s1">linalg</span>.<span class="pl-en">svd</span>(<span class="pl-v">X</span>)

<span class="pl-v">In</span> [<span class="pl-c1">23</span>]: <span class="pl-s1">s</span>[:<span class="pl-c1">5</span>]
<span class="pl-v">Out</span>[<span class="pl-c1">23</span>]:
<span class="pl-en">array</span>([<span class="pl-c1">193.6995948</span> , <span class="pl-c1">183.01489365</span>, <span class="pl-c1">180.94983595</span>, <span class="pl-c1">178.47342134</span>,
       <span class="pl-c1">174.07146491</span>])

<span class="pl-v">In</span> [<span class="pl-c1">24</span>]: <span class="pl-s1">u</span>[:<span class="pl-c1">5</span>, :<span class="pl-c1">5</span>]
<span class="pl-v">Out</span>[<span class="pl-c1">24</span>]:
<span class="pl-en">array</span>([[<span class="pl-c1">-</span><span class="pl-c1">0.12777193</span>,  <span class="pl-c1">0.1473861</span> , <span class="pl-c1">-</span><span class="pl-c1">0.04626332</span>,  <span class="pl-c1">0.09269663</span>,  <span class="pl-c1">0.12149756</span>],
       [<span class="pl-c1">-</span><span class="pl-c1">0.23535239</span>,  <span class="pl-c1">0.06543527</span>, <span class="pl-c1">-</span><span class="pl-c1">0.02588301</span>, <span class="pl-c1">-</span><span class="pl-c1">0.05401032</span>, <span class="pl-c1">-</span><span class="pl-c1">0.02436388</span>],
       [ <span class="pl-c1">0.09956489</span>, <span class="pl-c1">-</span><span class="pl-c1">0.07108259</span>, <span class="pl-c1">-</span><span class="pl-c1">0.10083294</span>,  <span class="pl-c1">0.16710062</span>, <span class="pl-c1">-</span><span class="pl-c1">0.0333519</span> ],
       [<span class="pl-c1">-</span><span class="pl-c1">0.05718053</span>, <span class="pl-c1">-</span><span class="pl-c1">0.11184903</span>, <span class="pl-c1">-</span><span class="pl-c1">0.12280465</span>,  <span class="pl-c1">0.04707958</span>,  <span class="pl-c1">0.16647603</span>],
       [ <span class="pl-c1">0.25422798</span>,  <span class="pl-c1">0.01464547</span>, <span class="pl-c1">-</span><span class="pl-c1">0.15071626</span>, <span class="pl-c1">-</span><span class="pl-c1">0.03225463</span>, <span class="pl-c1">-</span><span class="pl-c1">0.12620621</span>]])

<span class="pl-v">In</span> [<span class="pl-c1">25</span>]: <span class="pl-s1">np</span>.<span class="pl-en">mean</span>(<span class="pl-v">X</span> <span class="pl-c1">-</span> <span class="pl-s1">u</span> @ <span class="pl-s1">np</span>.<span class="pl-en">diag</span>(<span class="pl-s1">s</span>) @ <span class="pl-s1">v</span>)
<span class="pl-v">Out</span>[<span class="pl-c1">25</span>]: <span class="pl-c1">1.336599234069702e-16</span>

<span class="pl-v">In</span> [<span class="pl-c1">26</span>]: <span class="pl-s1">np</span>.<span class="pl-en">std</span>(<span class="pl-v">X</span> <span class="pl-c1">-</span> <span class="pl-s1">u</span> @ <span class="pl-s1">np</span>.<span class="pl-en">diag</span>(<span class="pl-s1">s</span>) @ <span class="pl-s1">v</span>)
<span class="pl-v">Out</span>[<span class="pl-c1">26</span>]: <span class="pl-c1">2.0947185697750298e-14</span></pre></div>
<p dir="auto">However, if you run svd with numpy==1.16.3, you get the following</p>
<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="In [13]: np.random.seed(0)

In [14]: X = np.random.randn(100, 100) * 10

In [15]: u, s, v = np.linalg.svd(X)

In [16]: s[:5]
Out[16]:
array([193.6995948 , 183.01489365, 180.94983595, 178.47342134,
       174.07146491])

In [17]: u[:5, :5]
Out[17]:
array([[-0.07680886,  0.17809124, -0.41179481,  0.14073815,  0.14494919],
       [ 0.46612298, -0.38573887,  0.34177276, -0.11314353, -0.03170648],
       [-0.62584307,  0.10539512,  0.20991414, -0.24513665, -0.11505925],
       [-0.43937521, -0.07100245,  0.2941617 , -0.03515797,  0.04093411],
       [ 0.00359183, -0.64178218,  0.69484207, -0.09871542,  0.28272959]])

In [18]: np.mean(X - u @ np.diag(s) @ v)
Out[18]: 1.0356975839816995

In [19]: np.std(X - u @ np.diag(s) @ v)
Out[19]: 92.84521345330656"><pre class="notranslate"><span class="pl-v">In</span> [<span class="pl-c1">13</span>]: <span class="pl-s1">np</span>.<span class="pl-s1">random</span>.<span class="pl-en">seed</span>(<span class="pl-c1">0</span>)

<span class="pl-v">In</span> [<span class="pl-c1">14</span>]: <span class="pl-v">X</span> <span class="pl-c1">=</span> <span class="pl-s1">np</span>.<span class="pl-s1">random</span>.<span class="pl-en">randn</span>(<span class="pl-c1">100</span>, <span class="pl-c1">100</span>) <span class="pl-c1">*</span> <span class="pl-c1">10</span>

<span class="pl-v">In</span> [<span class="pl-c1">15</span>]: <span class="pl-s1">u</span>, <span class="pl-s1">s</span>, <span class="pl-s1">v</span> <span class="pl-c1">=</span> <span class="pl-s1">np</span>.<span class="pl-s1">linalg</span>.<span class="pl-en">svd</span>(<span class="pl-v">X</span>)

<span class="pl-v">In</span> [<span class="pl-c1">16</span>]: <span class="pl-s1">s</span>[:<span class="pl-c1">5</span>]
<span class="pl-v">Out</span>[<span class="pl-c1">16</span>]:
<span class="pl-en">array</span>([<span class="pl-c1">193.6995948</span> , <span class="pl-c1">183.01489365</span>, <span class="pl-c1">180.94983595</span>, <span class="pl-c1">178.47342134</span>,
       <span class="pl-c1">174.07146491</span>])

<span class="pl-v">In</span> [<span class="pl-c1">17</span>]: <span class="pl-s1">u</span>[:<span class="pl-c1">5</span>, :<span class="pl-c1">5</span>]
<span class="pl-v">Out</span>[<span class="pl-c1">17</span>]:
<span class="pl-en">array</span>([[<span class="pl-c1">-</span><span class="pl-c1">0.07680886</span>,  <span class="pl-c1">0.17809124</span>, <span class="pl-c1">-</span><span class="pl-c1">0.41179481</span>,  <span class="pl-c1">0.14073815</span>,  <span class="pl-c1">0.14494919</span>],
       [ <span class="pl-c1">0.46612298</span>, <span class="pl-c1">-</span><span class="pl-c1">0.38573887</span>,  <span class="pl-c1">0.34177276</span>, <span class="pl-c1">-</span><span class="pl-c1">0.11314353</span>, <span class="pl-c1">-</span><span class="pl-c1">0.03170648</span>],
       [<span class="pl-c1">-</span><span class="pl-c1">0.62584307</span>,  <span class="pl-c1">0.10539512</span>,  <span class="pl-c1">0.20991414</span>, <span class="pl-c1">-</span><span class="pl-c1">0.24513665</span>, <span class="pl-c1">-</span><span class="pl-c1">0.11505925</span>],
       [<span class="pl-c1">-</span><span class="pl-c1">0.43937521</span>, <span class="pl-c1">-</span><span class="pl-c1">0.07100245</span>,  <span class="pl-c1">0.2941617</span> , <span class="pl-c1">-</span><span class="pl-c1">0.03515797</span>,  <span class="pl-c1">0.04093411</span>],
       [ <span class="pl-c1">0.00359183</span>, <span class="pl-c1">-</span><span class="pl-c1">0.64178218</span>,  <span class="pl-c1">0.69484207</span>, <span class="pl-c1">-</span><span class="pl-c1">0.09871542</span>,  <span class="pl-c1">0.28272959</span>]])

<span class="pl-v">In</span> [<span class="pl-c1">18</span>]: <span class="pl-s1">np</span>.<span class="pl-en">mean</span>(<span class="pl-v">X</span> <span class="pl-c1">-</span> <span class="pl-s1">u</span> @ <span class="pl-s1">np</span>.<span class="pl-en">diag</span>(<span class="pl-s1">s</span>) @ <span class="pl-s1">v</span>)
<span class="pl-v">Out</span>[<span class="pl-c1">18</span>]: <span class="pl-c1">1.0356975839816995</span>

<span class="pl-v">In</span> [<span class="pl-c1">19</span>]: <span class="pl-s1">np</span>.<span class="pl-en">std</span>(<span class="pl-v">X</span> <span class="pl-c1">-</span> <span class="pl-s1">u</span> @ <span class="pl-s1">np</span>.<span class="pl-en">diag</span>(<span class="pl-s1">s</span>) @ <span class="pl-s1">v</span>)
<span class="pl-v">Out</span>[<span class="pl-c1">19</span>]: <span class="pl-c1">92.84521345330656</span></pre></div>
<h3 dir="auto">Numpy/Python version information:</h3>

<p dir="auto">numpy version 1.15</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [18]: np.__config__.show()
mkl_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
blas_mkl_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
blas_opt_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
lapack_mkl_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
lapack_opt_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
In [27]:  import sys, numpy; print(numpy.__version__, sys.version)
1.15.4 3.6.5 | packaged by conda-forge | (default, Apr  6 2018, 13:44:09)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]"><pre class="notranslate"><code class="notranslate">In [18]: np.__config__.show()
mkl_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
blas_mkl_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
blas_opt_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
lapack_mkl_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
lapack_opt_info:
    libraries = ['mkl_rt', 'pthread']
    library_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['/Users/jmorton/miniconda3/envs/qiime2-2019.1/include']
In [27]:  import sys, numpy; print(numpy.__version__, sys.version)
1.15.4 3.6.5 | packaged by conda-forge | (default, Apr  6 2018, 13:44:09)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]
</code></pre></div>
<p dir="auto">numpy version 1.16</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [3]: np.__config__.show()
blas_mkl_info:
  NOT AVAILABLE
blis_info:
  NOT AVAILABLE
openblas_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_mkl_info:
  NOT AVAILABLE
openblas_lapack_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

In [20]:  import sys, numpy; print(numpy.__version__, sys.version)
1.16.3 3.6.7 | packaged by conda-forge | (default, Feb 28 2019, 02:16:08)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]"><pre class="notranslate"><code class="notranslate">In [3]: np.__config__.show()
blas_mkl_info:
  NOT AVAILABLE
blis_info:
  NOT AVAILABLE
openblas_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
blas_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_mkl_info:
  NOT AVAILABLE
openblas_lapack_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]
lapack_opt_info:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

In [20]:  import sys, numpy; print(numpy.__version__, sys.version)
1.16.3 3.6.7 | packaged by conda-forge | (default, Feb 28 2019, 02:16:08)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]
</code></pre></div>
<p dir="auto">As you can see, the output from 1.16.3 is broken, and the svd is no longer a true reconstruction.</p>
<p dir="auto">bash-5.0# gcc -v<br>
Using built-in specs.<br>
COLLECT_GCC=gcc<br>
COLLECT_LTO_WRAPPER=/opt/freeware/libexec/gcc/powerpc-ibm-aix6.1.0.0/6.3.0/lto-wrapper<br>
Target: powerpc-ibm-aix6.1.0.0<br>
Configured with: ../gcc-6.3.0/configure --prefix=/opt/freeware --mandir=/opt/freeware/man --infodir=/opt/freeware/info --with-local-prefix=/opt/freeware --with-as=/usr/bin/as --with-ld=/usr/bin/ld --enable-languages=c,c++,fortran,objc,obj-c++ --enable-version-specific-runtime-libs --disable-nls --enable-decimal-float=dpd --with-cloog=no --with-ppl=no --disable-libstdcxx-pch --enable-__cxa_atexit --host=powerpc-ibm-aix6.1.0.0<br>
Thread model: aix<br>
gcc version 6.3.0 (GCC)<br>
bash-5.0# python -V<br>
Python 3.6.6</p>
<p dir="auto">bash-5.0# python<br>
Python 3.6.6 (default, Jul 11 2018, 05:41:50)<br>
[GCC 6.3.0] on aix6<br>
Type "help", "copyright", "credits" or "license" for more information.</p>
<blockquote>
<blockquote>
<blockquote>
<p dir="auto">import numpy<br>
Traceback (most recent call last):<br>
File "/opt/freeware/lib64/python3.6/site-packages/numpy-1.16.0-py3.6-aix-6.1.egg/numpy/core/<strong>init</strong>.py", line 16, in <br>
from . import multiarray<br>
File "/opt/freeware/lib64/python3.6/site-packages/numpy-1.16.0-py3.6-aix-6.1.egg/numpy/core/multiarray.py", line 12, in <br>
from . import overrides<br>
File "/opt/freeware/lib64/python3.6/site-packages/numpy-1.16.0-py3.6-aix-6.1.egg/numpy/core/overrides.py", line 9, in <br>
from numpy.core._multiarray_umath import add_docstring, ndarray<br>
ImportError:    0509-022 Cannot load module /opt/freeware/lib64/python3.6/site-packages/numpy-1.16.0-py3.6-aix-6.1.egg/numpy/core/_multiarray_umath.so.<br>
0509-026 System error: Cannot run a file that does not have a valid format.</p>
</blockquote>
</blockquote>
</blockquote>
<p dir="auto">During handling of the above exception, another exception occurred:</p>
<p dir="auto">Traceback (most recent call last):<br>
File "", line 1, in <br>
File "/opt/freeware/lib64/python3.6/site-packages/numpy-1.16.0-py3.6-aix-6.1.egg/numpy/<strong>init</strong>.py", line 142, in <br>
from . import core<br>
File "/opt/freeware/lib64/python3.6/site-packages/numpy-1.16.0-py3.6-aix-6.1.egg/numpy/core/<strong>init</strong>.py", line 47, in <br>
raise ImportError(msg)<br>
ImportError:</p>
<p dir="auto">IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!</p>
<p dir="auto">Importing the multiarray numpy extension module failed.  Most<br>
likely you are trying to import a failed build of numpy.<br>
Here is how to proceed:</p>
<ul dir="auto">
<li>If you're working with a numpy git repository, try <code class="notranslate">git clean -xdf</code><br>
(removes all files not under version control) and rebuild numpy.</li>
<li>If you are simply trying to use the numpy version that you have installed:<br>
your installation is broken - please reinstall numpy.</li>
<li>If you have already reinstalled and that did not fix the problem, then:
<ol dir="auto">
<li>
<p dir="auto">Check that you are using the Python you expect (you're using /usr/bin/python),<br>
and that you have no directories in your PATH or PYTHONPATH that can<br>
interfere with the Python and numpy versions you're trying to use.</p>
</li>
<li>
<p dir="auto">If (1) looks fine, you can open a new issue at<br>
<a href="https://github.com/numpy/numpy/issues">https://github.com/numpy/numpy/issues</a>.  Please include details on:</p>
<ul dir="auto">
<li>how you installed Python</li>
<li>how you installed numpy</li>
<li>your operating system</li>
<li>whether or not you have multiple versions of Python installed</li>
<li>if you built from source, your compiler versions and ideally a build log</li>
</ul>
<p dir="auto">Note: this error has many possible causes, so please don't comment on<br>
an existing issue about this - open a new one instead.</p>
</li>
</ol>
</li>
</ul>
<p dir="auto">Original error was:     0509-022 Cannot load module /opt/freeware/lib64/python3.6/site-packages/numpy-1.16.0-py3.6-aix-6.1.egg/numpy/core/_multiarray_umath.so.<br>
0509-026 System error: Cannot run a file that does not have a valid format.</p>