ValueError:包含多个元素的数组的真值是不明确的.使用a.a any()或a.a all()来确定化石问题的年代



当已知碳的百分比仍然是c14(35%)时,我试着写一段代码来计算化石是什么时候形成的。我假设它的半衰期介于半衰期和半衰期的两倍之间,因此我提供的范围是:

t=np.arange(5730,5730*2,1)
while t in range(5730,5730*2):
if 0.5**(t/5700)>0.35:
t+=1
else:
break
print(t)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-101-cb11e85c664a> in <module>
4 t=np.arange(5730,5730*2,1)
5 
----> 6 while t in range(5730,5730*2):
7     if 0.5**(t/5700)>0.35:
8         t+=1
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

x in y在您的场景中没有意义

t在range(…)中要求t是单个值,但它是一个元素

numpy做了一些奇怪的事情告诉你它期望一个值但是你有一个数组

使用for循环代替while循环。此外,在循环停止后,您将打印t,因此您的t将永远不会被打印

用这个代替:

t = np.arange(5730,5730*2,1)
for t in range(5730,5730*2,1):

if 0.5**(t/5700)>0.35:
t+=1
else:
print(t)
break

最新更新