在这种情况下,np是numpy.
z_mesh是形状41*401的数组.
我需要从[2*i,2*j + 2]元素和[2*i,2*j]元素中减去[2*i,2*j]个元素,形状为20*200的dz_theta_mat和dz_gamma_mat分别为[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,)
Run Code Online (Sandbox Code Playgroud)
为什么不切片和减去?
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]
Run Code Online (Sandbox Code Playgroud)