<p>如评论中所讨论的,矩阵<code>A</code>和<code>B</code>具有以32为基数的十六进制值,写为<code>str</code>。要执行点积,我们首先需要使用内置函数<code>int(value, base)</code>将这些值转换为整数</p>
<p>在这里,我创建了一个小示例来解释流程应该如何进行:</p>
<pre><code>>>> import numpy as np
>>> A = np.array([[int("FFBCFFA2", 32)],
[int("FFBCFFA2", 32)],
[int("FFBCFFA2", 32)],
[int("FFBCFFA2", 32)]])
>>> A.shape
(4,1)
>>>
>>> B = np.array([[int("FFBCFFA2", 32), int("FFBCFFA2", 32), int("FFBCFFA2", 32), int("FFBCFFA2", 32)],
[int("FFBCFFA2", 32), int("FFBCFFA2", 32), int("FFBCFFA2", 32), int("FFBCFFA2", 32)],
[int("FFBCFFA2", 32), int("FFBCFFA2", 32), int("FFBCFFA2", 32), int("FFBCFFA2", 32)],
[int("FFBCFFA2", 32), int("FFBCFFA2", 32), int("FFBCFFA2", 32), int("FFBCFFA2", 32)]])
>>> B.shape
(4,4)
>>>
>>> C = np.matmul(A, B)
[[6956274410837382160]
[6956274410837382160]
[6956274410837382160]
[6956274410837382160]]
</code></pre>
<p>正如我们所看到的,点积的输出是数字,您可以使用<code>hex()</code>方法将它们转换回十六进制值:</p>
<pre><code>>>> hex(C[0][0])
0x6089a6b8821a1410
</code></pre>
<h2>编辑</h2>
<p>以下是将<code>valList</code>转换为<code>int</code>的正确方法:</p>
<pre><code>valList = list(map(lambda x: int(x,32), valList))
</code></pre>