擅长:python、mysql、java
<p>我复制了我今天早些时候写的<a href="https://stackoverflow.com/a/48727191/9209546">answer</a>的一部分:</p>
<blockquote>
<p>You should resist the urge to think of numpy arrays as having <em>rows</em>
and <em>columns</em>, but instead consider them as having <strong><em>dimensions</em></strong> and
<strong><em>shape</em></strong>. This is an important point which differentiates <code>np.array</code> and <code>np.matrix</code>:</p>
<pre><code>x = np.array([1, 2, 3])
print(x.ndim, x.shape) # 1 (3,)
y = np.matrix([1, 2, 3])
print(y.ndim, y.shape) # 2 (1, 3)
</code></pre>
<p>An <em>n</em>-D array can only use <em>n</em> integer(s) to represent its shape.
Therefore, a 1-D array only uses 1 integer to specify its shape.</p>
<p>In practice, combining calculations between 1-D and 2-D arrays is not
a problem for numpy, and syntactically clean since <code>@</code> matrix
operation was introduced in Python 3.5. Therefore, there is rarely a
need to resort to <code>np.matrix</code> in order to satisfy the urge to see
expected row and column counts.</p>
</blockquote>