如何解决如何同步两个不同长度的数组?
让我们考虑两个包含索引的数组:
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 举报,一经查实,本站将立刻删除。