gpt4 book ai didi

python - 正确使用 numpy interp

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:12 27 4
gpt4 key购买 nike

我有一个包含电阻 (self.interp_data[:,0]) 和相应温度 (self.interp_data[:,1]) 的列表。我想使用 numpy 中的 interp 函数从我测量的电阻中确定温度。这是我的功能:

def calc_T(self, V_out, V_g, R_ref):
R_T = np.array([(V_g * R_ref/ V_out) - R_ref])
print R_T
print type( self.interp_data[0,0])
print type( self.interp_data[0,1])
print bisect_right(self.interp_data[:,0], R_T)
print self.interp_data[:,0] < R_T
return np.interp(R_T, self.interp_data[:,0],self.interp_data[:,1] )

这是结果:

[ 22549.01960784]
<type 'numpy.float64'>
<type 'numpy.float64'>
211
[False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True True True True True True
True True True True True True True]
[ 150.]

这个列表包含 211 个元素,最后一个元素的值为 150。所以 bisect 和 interp 都同意 R_T 小于列表中的最小电阻值。

但比较表明它介于两者之间,我同意。如何正确使用 interp 来获取与我测量的电阻对应的温度?

最佳答案

问题是 np.interp(x, xp, fp)xp 输入必须排序。考虑到这一点,您的示例应该可以执行以下操作:

a = self.interp_data[:,0]
b = self.interp_data[:,1]

argsa = np.argsort(a)
xp = np.take(a, argsa)
fp = np.take(b, argsa)
np.interp(R_T, xp, fp)

关于python - 正确使用 numpy interp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25715661/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com