擅长:python、mysql、java
<p>得到错误的原因是因为“1乘n”矩阵不同于长度为n的数组</p>
<p>我建议改用<code>hstack()</code>和<code>vstack()</code>。
像这样:</p>
<pre><code>import numpy as np
a = np.arange(32).reshape(4,8) # 4 rows 8 columns matrix.
b = a[:,-1:] # last column of that matrix.
result = np.hstack((a,b)) # stack them horizontally like this:
#array([[ 0, 1, 2, 3, 4, 5, 6, 7, 7],
# [ 8, 9, 10, 11, 12, 13, 14, 15, 15],
# [16, 17, 18, 19, 20, 21, 22, 23, 23],
# [24, 25, 26, 27, 28, 29, 30, 31, 31]])
</code></pre>
<p>注意重复的“7,15,23,31”栏。
另外,请注意,我使用了<code>a[:,-1:]</code>,而不是<code>a[:,-1]</code>。我的版本生成一个列:</p>
<pre><code>array([[7],
[15],
[23],
[31]])
</code></pre>
<p>而不是一行<code>array([7,15,23,31])</code></p>
<hr/>
<p>编辑:<code>append()</code>要慢得多。阅读<a href="https://stackoverflow.com/a/5744459/4317303">this answer</a>。</p>