【问题标题】:Creating overlapping subarrays using stride_tricks使用 stride_tricks 创建重叠子数组
【发布时间】:2017-02-06 18:24:58
【问题描述】:

我发现下面的代码创建了给定长度的重叠子数组。它做了我想要的,除了它还颠倒了我不想要的元素的顺序。我真的找不到关于“形状”和“步幅”论点的文档,所以不知道如何改变这种行为。如何更改 'out = ...' 行以使元素不反转?

import numpy as np

x = np.array([2,3,1,0])
L = 3 # Row length
strided = np.lib.stride_tricks.as_strided
n = x.strides[0]
out = strided(x[L-1:],shape=(x.size-L+1,L),strides=(n,-n))
print out

【问题讨论】:

标签: python arrays numpy stride


【解决方案1】:

您需要保留所有数据:

out = strided(x,shape=(x.size-L+1,L),strides=(n,n))

对于

[[2 3 1]
 [3 1 0]]

strided 不检查访问是否在范围内,所以万一出错,一切都可能发生。

【讨论】:

    猜你喜欢
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2012-09-22
    相关资源
    最近更新 更多