1 回答
TA贡献1878条经验 获得超4个赞
由于 y 的每个元素对应于同一索引中的 v 元素(这是您想要的 x 值),因此您可以使用enumerate给您每个值的索引并打印出相应的x而不是整个向量:
def most_probable_speed(v,m,T):
'''determine the most probable speed of a given mass and temperature'''
x = Maxwell_Boltzmann(v, m, T) #put the y values of Maxwel_B for all x in an array named x
highest_probability = np.amax(x) #Return the maximum value of y
# I want to print the value of v for whcih Maxwell_Boltzmann(v, m, T)= highest_probability
for idx, a in enumerate(Maxwell_Boltzmann(v, m, T)):
if a == highest_probability:
print(v[idx])
else:
continue
但是,您调用 Maxwell_Boltzmann 函数两次。如果您只是想找到对应于最高 y 值的 x,您可以更有效地执行此操作,如下所示:
def most_probable_speed(v,m,T):
'''determine the most probable speed of a given mass and temperature'''
x = Maxwell_Boltzmann(v, m, T) #put the y values of Maxwel_B for all x in an array named x
highest_probability_idx = np.argmax(x) # Return the index of the maximum value of y
print(v[highest_probability_idx])
在这里,np.argmax返回返回数组中最大值的索引,然后您可以使用它来访问v向量中相应的 x
添加回答
举报