Skip to main content
 首页 » 编程设计

python列表操作修改列表形状

2025年05月04日25tintown

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]