繁体   English   中英

用于中心差分的Python索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM