【发布时间】:2025-11-29 07:50:02
【问题描述】:
我想知道当其他数组在一行中(或以一种有效的方式)相同时,Python 中是否有一种方法可以将两个数组设置为彼此相等,这可以在 Matlab 中完成。
例如,假设我有两个温度数组和两个对应纬度数组,如下所示。我想用纬度相同的第二个数组(temps2)中的温度替换第一个数组(temps1)中的温度。 (为了清楚起见,间距只是为了显示哪些值对应于哪些点)
temps1 = [20, 23, 24, 20, 25, 36, 21, 10, 32, 27]
temps2 = [ 25, 21, 22, 09]
lats1 = [45, 46, 47, 48, 49, 50, 51, 52, 52, 53]
lats2 = [ 47, 48, 51, 52]
我知道在 Matlab 中,这可以很容易地通过简单地说来完成
temps1(lats1 == lats2) = temps2;
在 python 中有没有一种方法可以在不通过 for 循环的情况下做到这一点?在我的实际项目中,我有很多数据要处理,如果可能的话,我希望效率更高。提前致谢!
【问题讨论】:
-
澄清一下,
temps1和temps2的列表长度是否相同? -
不,它们的大小和形状不同。
-
是什么让您认为
temps1(lats1 == lats2) = temps2;会在Matlab 中工作?lats1和lats2没有兼容的形状。 Matlab 不会像您想要的那样为您排列元素。
标签: python arrays matlab data-manipulation