Python 仅填充最后一个值的数组

Python 仅填充最后一个值的数组,python,arrays,loops,Python,Arrays,Loops,我的数组仅用计算值填充最后一个空格时出现问题。我的代码如下: c_volume = 4.45e-5 c_flow_rate = 1.67e-6 acr = c_flow_rate/c_volume t1 = [3600.0,18000.0, 36000.

我的数组仅用计算值填充最后一个空格时出现问题。我的代码如下:

c_volume = 4.45e-5                                                              
c_flow_rate = 1.67e-6                                                           

acr = c_flow_rate/c_volume

t1 = [3600.0,18000.0, 36000.0]
air_conc_t1 = [6.42404968e+02, 2.74977722e+02, 1.45282562e+02]


t2 = [7200.0, 21600.0, 39600.0]
air_conc_t2 = [4.53346985e+02, 2.41359268e+02, 1.28038071e+02]

===============================================================

n_calc = np.zeros((len(t1),1), dtype='f') 

def n(t1, air_conc_t1, t2, air_conc_t2):
    return (1/(t2-t1))*(np.log(air_conc_t1/air_conc_t2))                        

for i in range(len(t1)):
    n_calc[i] = n(t1[i], air_conc_t1[i], t2[i], air_conc_t2[i])

===============================================================

calc_f1 = np.zeros((len(t1),1), dtype='f')
calc_f2 = np.zeros((len(t1),1), dtype='f')
calc_N = np.zeros((len(t1),1), dtype='f')

def f1(acr, n_calc):
    return (acr+n_calc)/n_calc                                                    

calc_f1[i] = f1(acr, n_calc[i])

def f2(acr, n_calc):
    return (acr-n_calc)/n_calc                                                  

calc_f2[i] = f2(acr, n_calc[i])

def N(R, calc_root, m_thickness, calc_f1, calc_f2):
    return (2*R*np.tan(calc_root*m_thickness))/(calc_root*m_thickness*
        (calc_f1+calc_f2*calc_root*m_thickness*((1/np.tan(calc_root\
        *m_thickness))+np.tan(calc_root*m_thickness))))

for i in xrange(len(t1)):
    calc_N[i] = N(R, calc_root[i], m_thickness, calc_f1[i], calc_f2[i])         

print calc_f1
print calc_f2
print calc_N
我正在打印以下内容:

[[    0.        ]
 [    0.        ]
 [ 1070.23657227]]
[[    0.       ]
 [    0.       ]
 [ 1068.2364502]]
[[             inf]
 [             inf]
 [  3.55326119e-06]]
我不知道为什么数组的前两个值没有被填充,但最后一个是。我已经手工计算了它们,得到了它们的值

我对编程非常陌生,因此任何帮助都将不胜感激

谢谢


Shane

您对f1和f2的呼叫不在循环中。请注意,处于相同缩进级别的所有内容都包含在循环中

请尝试以下方法:

for i in xrange(len(t1)):
    calc_f1[i] = f1(acr, n_calc[i])
    calc_f2[i] = f2(acr, n_calc[i])
    calc_N[i] = N(R, calc_root[i], m_thickness, calc_f1[i], calc_f2[i])         

print calc_f1
print calc_f2
print calc_N
线条

在任何
for
循环之外(可能这只是缩进的问题)

calc_f1[i] = f1(acr, n_calc[i])

calc_f2[i] = f2(acr, n_calc[i])