gpt4 book ai didi

c# - zip 函数的用途是什么(如在 Python 或 C# 4.0 中)?

转载 作者:太空狗 更新时间:2023-10-29 17:35:37 25 4
gpt4 key购买 nike

有人问How to do Python’s zip in C#? ...

...这让我问,zip 有什么好处?在什么情况下我需要这个?它真的如此基础以至于我在基类库中需要它吗?

最佳答案

居然有人问了一个question最近,我在这里回答了 Zip 扩展方法,所以这对一些人来说显然很重要。 ;)

实际上,它是数学算法中相当重要的操作 - 矩阵、曲线拟合、插值、模式识别等。在数字信号处理等工程应用中也非常重要,您所做的大部分工作是组合多个信号或对它们应用线性变换 - 两者都基于样本索引,因此将其压缩。压缩两个序列比根据某个键对它们进行排序和连接要快得多,尤其是当您事先知道序列具有相同数量的元素并且顺序相同时。

由于我目前的工作,我不能在这里详细说明,但一般来说,这对于遥测数据也很有值(value) - 工业、科学等。通常,您会有来自数百或数千个点的数据时间序列 - 并行源 - 您需要聚合,但横向,在设备上,而不是在时间上。最后,您需要另一个时间序列,但需要所有单个点的总和或平均值或其他一些聚合。

这听起来像是 SQL Server 中的简单排序/分组/连接(例如),但实际上很难以这种方式有效地完成。一方面,时间戳可能不完全匹配,但您不关心几毫秒的差异,因此您最终不得不生成代理键/行号并对其进行分组 - 当然还有代理行号只不过是您已经拥有的时间index。压缩简单、快速且可无限并行化。

我不知道我是否称它为基础,但它很重要。我也不经常使用 Reverse 方法,但出于同样的原因,我很高兴在我确实需要它的极少数情况下,我不必自己继续编写它.

它现在对您来说似乎没有用的原因之一是 .NET/C# 3.5 没有元组。 C# 4 does have tuples ,当您使用元组时,压缩确实是一项基本操作,因为顺序是严格执行的。

关于c# - zip 函数的用途是什么(如在 Python 或 C# 4.0 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2429692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com