微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何同步两个不同长度的数组?

如何解决如何同步两个不同长度的数组?

让我们考虑两个包含索引的数组:

x = [0,1,2,3,4,5...]
y = [0,6,9,12,...]

这些数组的长度可能略有不同,大约最多 3 个索引。 在本例中,我们假设 len(x) = len(y) - 1 我想返回同步的 x,它将被 1 个条目扩展,以便这些数组仍然相互对应 (x[n]=y[n]+3)。 我想出了使用 np.searchsorted 方法的想法,但它不起作用:

def synchronize_array(self,arr: np.ndarray) -> np.ndarray:
    sync_idx = np.searchsorted(arr,BASE_ARR)
    sync_idx[sync_idx >= len(arr)] = len(arr) - 1
    return arr[sync_idx]

Sync_idx 在这种情况下是 [0,n-1,...] 有什么方法可以同步这些数组吗?

解决方法

synchronized 的含义不清楚,但您可以遍历两个数组,用 itertools.zip_longest 的默认值填充最短的数组

from itertools import zip_longest

x = [0,1,2,3,4,5]
y = [0,6,9,12]

xy = zip_longest(x,y,fillvalue=0)
print(list(xy))

产生什么

[(0,0),(1,3),(2,6),(3,9),(4,12),(5,0)]

干杯!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。