Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy矢量化重采样,如熊猫数据帧重采样_Python_Arrays_Numpy - Fatal编程技术网

Python numpy矢量化重采样,如熊猫数据帧重采样

Python numpy矢量化重采样,如熊猫数据帧重采样,python,arrays,numpy,Python,Arrays,Numpy,我有一个(42000)numpy数组,并希望每5个元素对每列(N=4)重新采样,例如max、min、left、right,使其形状为(4400) 我可以使用Pandas.DataFrame使用.resample('5Min').agg(~)或使用numpy数组和for loop-likeresult=[max(输入[I:I+5])来处理范围(0,len(输入),5)]内的I。但是,由于没有矢量化,使用大型输入数组需要花费大量时间。有什么方法可以使用np数组进行矢量化计算吗?这里有另一种方法可以在

我有一个
(42000)
numpy数组,并希望每5个元素对每列
(N=4)
重新采样,例如max、min、left、right,使其形状为(4400)


我可以使用
Pandas.DataFrame
使用
.resample('5Min').agg(~)
或使用numpy数组和for loop-like
result=[max(输入[I:I+5])来处理范围(0,len(输入),5)]内的I
。但是,由于没有矢量化,使用大型输入数组需要花费大量时间。有什么方法可以使用np数组进行矢量化计算吗?

这里有另一种方法可以在引擎盖下使用numpy步长(
a
是您的数组):

现在,您可以对所需的参数使用方法/切片:

#max
a.max(-1)[0].T
#min
a.min(-1)[0].T
#left
a[...,0][0].T
#right
a[...,-1][0].T
例如:

a
#[[ 0  1  2  3  4  5  6  7  8  9]
# [10 11 12 13 14 15 16 17 18 19]
# [20 21 22 23 24 25 26 27 28 29]
# [30 31 32 33 34 35 36 37 38 39]]

output for max
#[[ 4  9]
# [14 19]
# [24 29]
# [34 39]]

下面是另一种在引擎盖下使用numpy步幅的方法(
a
是您的阵列):

现在,您可以对所需的参数使用方法/切片:

#max
a.max(-1)[0].T
#min
a.min(-1)[0].T
#left
a[...,0][0].T
#right
a[...,-1][0].T
例如:

a
#[[ 0  1  2  3  4  5  6  7  8  9]
# [10 11 12 13 14 15 16 17 18 19]
# [20 21 22 23 24 25 26 27 28 29]
# [30 31 32 33 34 35 36 37 38 39]]

output for max
#[[ 4  9]
# [14 19]
# [24 29]
# [34 39]]

对于滑动最大-。对于一个通用的,获得滑动窗口并沿适当的轴使用ufunc-你能重塑numpy数组并沿正确的轴移动吗
np.max(input.reformate(4400,5),axis=-1)
@MBeale执行
np.reformate
确保滑动max的顺序与
skimage.util.view_as_块一样。对于一个通用的,获得滑动窗口并沿适当的轴使用ufunc-你能重塑numpy数组并沿正确的轴移动吗
np.max(input.reformate(4400,5),axis=-1)
@MBeale不执行
np.reformate
确保像
skimage.util.view\u那样按块查看?谢谢!它几乎将我的过程提高了20倍!谢谢它几乎将我的过程提高了20倍!