a1 = np.random.random_sample(10)
a2 = np.random.random_sample(5)
a3 = np.zeros([10])
for i in range(0,9):
a3[i] = ((a2[i]+a2[i+1])/2.) * ((a1[i+1]-a1[i])/2.) * (a1[i]*a2[i])
print(i, a3[i])
我尝试运行这个简单的脚本,我收到错误"IndexError: index out of bounds"
...
请不要忘记这个错误?我理解数字5
导致的错误,但我无法更改,因为a2
数组是从长度为(a2= np.loadtxt('data.txt',unpack=True, usecols=[1])
的txt 5
加载的
请问任何想法?
答案 0 :(得分:1)
a2
中只有5个元素,因为:
a2 = np.random.random_sample(5)
但是for for i run for i> 5到8
for i in range(0,9):
a3[i] = ((a2[i]+a2[i+1])/2.) * ((a1[i+1]-a1[i])/2.) * (a1[i]*a2[i])
^ index out ^ index out
因为您也a2
访问a2[i+1]
。因此,i
最多只能3
尝试range(0,4)
编辑:
要填写五个额外的1,请执行以下操作:
a2.extend(5*[1])
a2