gradient使用在多维数组上面,计算过程是怎么的,如何得到结果的?

gradient使用在多维数组上面,计算过程是怎么的,如何得到结果的?
c=np.random.randint(0,20,(3,5))
c
Out[96]:
array([[ 3, 18, 13, 11, 16],
[13, 11, 17, 19, 5],
[11, 1, 11, 0, 5]])
np.gradient(c)
Out[98]:
[array([[ 10. , -7. , 4. , 8. , -11. ],
[ 4. , -8.5, -1. , -5.5, -5.5],
[ -2. , -10. , -6. , -19. , 0. ]]),
array([[ 15. , 5. , -3.5, 1.5, 5. ],
[ -2. , 2. , 4. , -6. , -14. ],
[-10. , 0. , -0.5, -3. , 5. ]])]

第一个是最外层维度的梯度,第二个是第二层维度的梯度?

比如,第一个的“10”如何得来的?