np 在这种情况下是 numpy。
z_mesh 是形状为 41*401 的数组。
我需要形状为 20*200 的 dz_theta_mat 和 dz_gamma_mat,方法是从第 [2*i,2*j+2] 个元素和 [2*i,2*j] 中减去第 [2*i,2*j] 个元素分别从第[2*i+2,2*j]个元素开始。
我的尝试没有给出列表所需的形状。
如何修改它以获得所需的结果?
print np.shape(z_mesh)
dz_gamma_mat = [z_mesh[2*i,2*j+2]-z_mesh[2*i,2*j] for i,j in itertools.product(range(20),range(199))]
print np.shape(fish_dz_gamma_mat)
dz_theta_mat = [z_mesh[2*i+2,2*j]-z_mesh[2*i,2*j] for i, j in itertools.product(range(19),range(200))]
print np.shape(fish_dz_theta_mat)
(41, 401)
(3980,)
(3800,)
请您参考如下方法:
为什么不只是 slice并减去?
dz_theta_mat = z_mesh[:-1:2, 2::2] - z_mesh[:-1:2, :-1:2]
dz_gamma_mat = z_mesh[2::2, :-1:2] - z_mesh[:-1:2, :-1:2]
