Python 如何为两个不同的数据应用循环
这是我的数据Python 如何为两个不同的数据应用循环,python,numpy,Python,Numpy,这是我的数据 data1 = [0, 1.12, 0.96] data2 = [0.96, 0, 0] data3 = [0, 1.2, 1.28] length_T_bd = 220 #Newton length_T_be = 250 #Newton length_r_bd = 0 r_d = np.array(data1) r_b = np.array(data2) r_e = np.array(data3) 计算 r_bd = r_b - r_d r_be = r_b - r_e f
data1 = [0, 1.12, 0.96]
data2 = [0.96, 0, 0]
data3 = [0, 1.2, 1.28]
length_T_bd = 220 #Newton
length_T_be = 250 #Newton
length_r_bd = 0
r_d = np.array(data1)
r_b = np.array(data2)
r_e = np.array(data3)
计算
r_bd = r_b - r_d
r_be = r_b - r_e
for value in r_bd:
length_r_bd += value ** 2
length_r_bd = np.sqrt(length_r_bd)
u_bd = r_bd / length_r_bd
T_bd = length_T_bd * u_bd
如上图所示,我可以获得T_bd。另外,我想通过同样的程序获得T_be。但是,我需要使用FOR循环两次来完成此操作
是否有更明智的选择。只有当r_bd和r_be的长度相同时,此选项才有效:
r_bd = r_b - r_d
r_be = r_b - r_e
for value_bd, value_be in zip(r_bd, r_be):
length_r_bd += value_bd ** 2
length_r_bd = np.sqrt(length_r_bd)
u_bd = r_bd / length_r_bd
T_bd = length_T_bd * u_bd
length_r_be += value_be ** 2
length_r_be = np.sqrt(length_r_be)
u_be = r_be / length_r_be
T_be = length_T_be * u_be
似乎您希望对多个不同的输入应用相同的处理。这里需要的是一个函数。此外,您似乎覆盖了许多变量,因此:
def do_calc(ar, length_T):
length_r = np.sqrt(ar ** 2) # This is where the 'iteration' happens
u = ar / length_r
T = length_T * u
return T
T_bd = do_cal(r_bd, length_T_bd)
T_be = do_cal(r_be, lenght_T_be)
是的,它们有相同的长度。它起作用了,但结果不是真的。如果它们的长度不同,它实际上会起作用,但它只会考虑第一个
min(len(r_bd),len(r_be))
元素。@fbezir,你期望得到什么样的结果?你得到了什么?对于T_bd,我也看到了同样的情况