擅长:python、mysql、java
<p>如果你想对数组(不管它们的维数是多少……)执行数学运算,你真的应该考虑使用<a href="http://numpy.scipy.org/" rel="noreferrer">NumPy</a>这是专门为此而设计的。在您的情况下,相应的NumPy命令是:</p>
<pre><code>PAC = numpy.exp(-dose*np.array(a))
</code></pre>
<p>如果NumPy不是一个选项,您将不得不在<code>a</code>的每个元素上循环,计算<code>math.exp</code>,将结果存储在列表中。。。真的很麻烦而且效率很低。这是因为当传递列表时,<code>math</code>函数需要标量作为输入(正如异常告诉您的那样)。您可以在一个列表理解中组合所有循环,但是:</p>
<pre><code>PAC = [[[math.exp(-dose*j) for j in elem] for elem in row] for row in a]
</code></pre>
<p>但我再次强烈推荐努比。</p>