gpt4 book ai didi

python - 数字化 numpy 数组

转载 作者:太空宇宙 更新时间:2023-11-03 14:17:45 26 4
gpt4 key购买 nike

我有两个向量:

  time_vec = np.array([0.2,0.23,0.3,0.4,0.5,...., 28....])
values_vec = np.array([500,200,220,250,200,...., 218....])
time_vec.shape == values_vec.shape

现在,我想每 0.5 秒间隔取一次 bin 的值,并取这些值的平均值。例如

  value_vec = np.array(mean_of(500,200,220,250,200), mean_of(next values in next 0.5 second interval))

是否有任何 numpy 方法我遗漏了哪个 bin 并取了 bin 的平均值?

最佳答案

您可以使用 np.ufunc.reduceat .您只需要填充断点所在的位置,即 floor(t/.5) 更改时:

说:

>>> t
array([ 0. , 0.025 , 0.2125, 0.2375, 0.2625, 0.3375, 0.475 , 0.6875, 0.7 , 0.7375, 0.8 , 0.9 ,
0.925 , 1.05 , 1.1375, 1.15 , 1.1625, 1.1875, 1.1875, 1.225 ])
>>> b
array([ 0.8144, 0.3734, 1.4734, 0.6307, -0.611 , -0.8762, 1.6064, 0.3863, -0.0103, -1.6889, -0.4328, -0.7373,
1.7856, 0.8938, -1.1574, -0.4029, -0.4352, -0.4412, -1.7819, -0.3298])

断点是:

>>> i = np.r_[0, 1 + np.nonzero(np.diff(np.floor(t / .5)))[0]]
>>> i
array([ 0, 7, 13])

每个区间的总和是:

>>> np.add.reduceat(b, i)
array([ 3.411 , -0.6975, -3.6545])

平均值将是区间长度的总和:

>>> np.add.reduceat(b, i) / np.diff(np.r_[i, len(b)])
array([ 0.4873, -0.1162, -0.5221])

关于python - 数字化 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844094/

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