我正在把Matlab的一些代码转换成Python。
我有一个3D数组,其维度基于经度x纬度x时间。经度当前为[-180 180],我想将其转换为[0 360],以便将其插入到同一网格作为不同的变量。转换后,我需要对3D数组中的值进行排序,以匹配排序后的[0 360 values]。
Matlab中的代码:
SSS_ships=flip(SSS_ships,2);
SSS_ship.lon2=wrapTo360(SSS_interp.lon);
[SSS_ship.lon2,ix]=sort(SSS_ship.lon2);
SSS_ship.sss=SSS_ships(ix,:,:);
字符串
到目前为止,我在Python中的代码:
idx=np.where(SSS_lon < 0)
SSS_lon[idx]=SSS_lon[idx]+360
型
我一直在寻找一个函数,可以让我像在Matlab中一样对数据进行排序。任何帮助都将不胜感激。
1条答案
按热度按时间snvhrwxg1#
好吧,不同的是,在Matlab中,你似乎有一个记录数组或类似的东西(带有字段
lon2
),而在这里,你有单独的数组(至少,你唯一显示的是SSS_lon
,没有提到包含其他信息的其他数组,如纬度和时间。假设你有3个不同的数组
字符串
然后,您可以通过使用
argsort
提取排序索引,然后将它们应用于所有3个数组来进行排序型