<p>我知道您正在寻找<code>numpy</code>唯一的解决方案。但是,如果允许,还有一种可能性是将<code>more_itertools</code>与<a href="https://numpy.org/doc/stable/reference/generated/numpy.ravel.html" rel="nofollow noreferrer">^{<cd3>}</a>或<a href="https://numpy.org/doc/stable/reference/generated/numpy.reshape.html" rel="nofollow noreferrer">^{<cd4>}</a>或<a href="https://numpy.org/doc/stable/reference/generated/numpy.ndarray.flatten.html" rel="nofollow noreferrer">^{<cd5>}</a>一起使用:</p>
<pre><code>>>> import more_itertools
>>> list(more_itertools.flatten(([x.reshape(-1) for x in myarrs])))
</code></pre>
<h3>比较:</h3>
<p><strong>原始解决方案</strong></p>
<pre><code>%timeit -n 100000 np.hstack([np.hstack(i) for i in myarrs])
> 31.6 µs ± 1.16 µs per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>
<p><strong>来自<a href="https://stackoverflow.com/users/5218354/norok2">norok2</a>的解决方案(最快)</strong></p>
<pre><code>%timeit -n 100000 np.concatenate([x.ravel() for x in myarrs])
> 2.62 µs ± 54.6 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>
<p><strong>含有<code>more_itertools</code>+<code>reshape(-1)</code></strong></p>
<pre><code>%timeit -n 100000 list(more_itertools.flatten(([x.reshape(-1) for x in myarrs])))
> 9.32 µs ± 255 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>
<p><strong>含<code>more_itertools</code>+<code>ravel()</code></strong></p>
<pre><code>%timeit -n 100000 list(more_itertools.flatten(([x.ravel() for x in myarrs])))
> 7.33 µs ± 235 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>
<p><strong>含<code>more_itertools</code>+<code>flatten()</code></strong></p>
<pre><code>%timeit list(more_itertools.flatten(([x.flatten() for x in myarrs])))
> 8.3 µs ± 65.5 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>