<p>首先,许多不常用的对象基本上都是numpy数组:</p>
<pre><code>>>>arr = unp.uarray([1, 2], [0.01, 0.002])
>>>arr
[1.0+/-0.01 2.0+/-0.002]
>>>type(arr)
<type 'numpy.ndarray'>
</code></pre>
<p>所以你不必惊讶。<br/>顺便说一句,ufloat是一个函数,而不是一个类型:</p>
^{pr2}$
<p>其次,为了得到标称值,应使用:</p>
<pre><code>unumpy.nominal_values(l)
</code></pre>
<p>编辑:
在你编辑了你的原始信息之后,我想我理解你的问题了。你可以用unumpy.log文件在for循环外这样:</p>
<pre><code>>>>nn = [ ufloat(1, 2), ufloat(53, 4)]
>>>ln = unp.log(nn)
>>>ln
[0.0+/-2.0 3.970291913552122+/-0.07547169811320754]
>>>type(ln)
<type 'numpy.ndarray'>
>>>(unp.nominal_values(ln)) #now it works fine
[ 0. 3.97029191]
</code></pre>
<p>我也同意这种行为有点奇怪。在</p>
<p>运行良好并实现目标的代码:</p>
<pre><code>d, t, n = loadtxt('mess_blei_gamma.txt', unpack=True)
fh = open('table_blei.txt', 'w')
nn = (norm(n[i], t[i], n0) for i range(0, len(d)))
ln = unp.log(nn)
for i in range(0, len(d)):
fh.write(tex(str(d[i])+" & "+str(t[i])+" & "+str(n[i])+" & "+str(nn[i])+" & "+str(ln[i]))) #works how it's supposed to, the table is perfectly fine
fh.close()
print(unp.nominal_values(nn))
print(unp.nominal_values(ln))
</code></pre>