[英]Python indexing for central differencing
我有一个关于python索引的问题:我正在尝试使用中心差分来估计数组'U'中的'dU',并且我通过用'nan'长度(U)数组初始化'dU'来做到这一点然后应用中心差分使得dU(i)=(U(i + 1) - U(i-1))/ 2到中心元素。 输出'dU'数组目前在向量的末尾给我两个'nan'条目。 任何人都可以解释为什么倒数第二个元素没有更新?
import numpy as np
U= np.array([1,2,3,4,5,6])
dU = np.zeros(len(U))
dU[:] = np.NAN
dU[1:-2] = (U[2:-1]-U[0:-3])/2
>>> dU
array([ nan, 1., 1., 1., nan, nan])
要包含倒数第二个元素,您需要:
dU[1:-1] = (U[2:]-U[0:-2])/2
不回答你的问题,但作为一个有用的提示,你可以使用numpy.gradient
>>> np.gradient(np.array([1,2,3,4,5,6]))
>>> array([ 1., 1., 1., 1., 1., 1.])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.