<p>您可以使用<code>np.dot</code>本身:</p>
<pre><code>import numpy as np
list0 = [(-1, -1, -1), (-1, -1, 1), (-1, 1, -1), (-1, 1, 1), (1, -1, -1), (1, -1, 1), (1, 1, -1), (1, 1, 1)]
# approach using np.dot
a = np.array(list0)
result = np.dot(a, a.T)
# brute force approach
brute = []
for x in list0:
brute.append([np.dot(x, y) for y in list0])
brute = np.array(brute)
print((brute == result).all())
</code></pre>
<p><strong>输出</strong></p>
<pre><code>True
</code></pre>
<p>你要问的是<code>a</code>与自身的矩阵乘法,从<a href="https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.dot.html" rel="nofollow noreferrer">documentation</a>:</p>
<blockquote>
<p>if both a and b are 2-D arrays, it is matrix multiplication,</p>
</blockquote>
<p>请注意,最具<em>pythonic</em>解决方案是使用操作符<code>@</code>:</p>
<pre><code>import numpy as np
list0 = [(-1, -1, -1), (-1, -1, 1), (-1, 1, -1), (-1, 1, 1), (1, -1, -1), (1, -1, 1), (1, 1, -1), (1, 1, 1)]
# approach using np.dot
a = np.array(list0)
result = a @ a.T
# brute force approach
brute = []
for x in list0:
brute.append([np.dot(x, y) for y in list0])
brute = np.array(brute)
print((brute == result).all())
</code></pre>
<p><strong>输出</strong></p>
<pre><code>True
</code></pre>
<p><strong>注意:</strong>代码是在Python3.5中运行的</p>