gpt4 book ai didi

numpy - 创建具有滞后的 numpy 矩阵

转载 作者:行者123 更新时间:2023-12-02 17:40:36 27 4
gpt4 key购买 nike

假设我有

q=2

y=[5,10,5,15,20,25,30,35,5,10,15,20]

n=len(y)

我想制作一个 n x q 维度的矩阵,其中第一行为 [5,10],第二行为 [10,5],第三行为 [5,15] ...等.

有没有办法做到这一点,或者我必须使用for循环concatenate函数?

最佳答案

我们的好 friend index_tricks来救援:

import numpy as np

#illustrate functionality on a 2d array
y=np.array([5,10,5,15,20,25,30,35,5,10,15,20]).reshape(2,-1)

def running_view(arr, window, axis=-1):
"""
return a running view of length 'window' over 'axis'
the returned array has an extra last dimension, which spans the window
"""
shape = list(arr.shape)
shape[axis] -= (window-1)
assert(shape[axis]>0)
return np.lib.index_tricks.as_strided(
arr,
shape + [window],
arr.strides + (arr.strides[axis],))

print running_view(y, 2)

它返回原始数组的 View ,因此性能复杂度为 O(1)。编辑:概括为包含 nd 数组的可选轴参数。

关于numpy - 创建具有滞后的 numpy 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21229503/

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