gpt4 book ai didi

python - 伪增加值表的 'resolution'

转载 作者:行者123 更新时间:2023-11-28 19:17:50 31 4
gpt4 key购买 nike

我有一个包含 16.000 个条目的测量数组,形式为

[t] [value]

问题是我的数据记录器太慢了,我每秒只有测量点。对于我的模拟,我需要增加伪分辨率。这样每个时间步都除以 1000,每个测量值都必须复制 1000 次。 (为清楚起见,请参见图)。所以我假装增加了我的测量文件的分辨率。

我如何在 Python 中使用 numpy 高效地(!!!)做到这一点。我不想在创建包含 16.000.000 个条目的数组时进行迭代。 enter image description here

将我的时间数组除以 1000 的简单答案不适用于这种情况。

编辑:让它变得更加复杂:除了在我的图片中,每个时间步长的时间增量都不等距。

最佳答案

虽然很难准确地说出您的要求,但我猜您只是想在已有的值之间进行插值。好在 numpy 有一个简单的内置功能,interp1d 模块 ( docs):

>>> from scipy import interpolate
>>> x = np.arange(0, 10)
>>> y = np.exp(-x / 3.0)
>>> f = interpolate.interp1d(x, y)

>>> x_new = np.array([1.5, 2.5, 3.5])
>>> f(x_new)
array([ 0.61497421, 0.44064828, 0.31573829])

就您问题的第二部分而言,numpy 再次为您提供了一个很棒的内置功能! np.repeat 函数应该完全按照您的要求执行,一直到可变时间步长。可以找到文档 here .示例如下:

>>> values = np.array([1, 2, 3, 4])
>>> np.repeat(values, [2, 1, 2, 1])
array([1, 1, 2, 3, 3, 4])

关于python - 伪增加值表的 'resolution',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31247190/

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