- 如何从给定的一维数组创建步幅,比如:
# 原始数组
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
# 想要得到的结果
[[array([0, 1, 2, 3])],
[array([2, 3, 4, 5])],
[array([4, 5, 6, 7])],
[array([6, 7, 8, 9])],
[array([ 8, 9, 10, 11])],
[array([10, 11, 12, 13])]]
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 7 13:10:04 2020
@author: 15025
"""
import numpy as np
class NumpyStudy:
@staticmethod
def findRepeatElementIndex():
array = np.arange(15)
index_ = np.arange(0, 15, 2)
final_array= [[array[index_[i]:index_[i + 2]]] for i in range(6)]
print(final_array)
if __name__ == "__main__":
main = NumpyStudy()
main.findRepeatElementIndex()
"""
[[array([0, 1, 2, 3])],
[array([2, 3, 4, 5])],
[array([4, 5, 6, 7])],
[array([6, 7, 8, 9])],
[array([ 8, 9, 10, 11])],
[array([10, 11, 12, 13])]]
"""
方法二:
# -*- coding: utf-8 -*-
"""
Created on Sat Nov 7 13:10:04 2020
@author: 15025
"""
import numpy as np
class NumpyStudy:
@staticmethod
def findRepeatElementIndex():
def gen_strides(a, stride_len=5, window_len=5):
n_strides = ((a.size - window_len) // stride_len) + 1
return np.array([a[s:(s + window_len)] for s in np.arange(0, n_strides * stride_len, stride_len)])
print(gen_strides(np.arange(15), stride_len=2, window_len=4))
if __name__ == "__main__":
main = NumpyStudy()
main.findRepeatElementIndex()
"""
[[ 0 1 2 3]
[ 2 3 4 5]
[ 4 5 6 7]
[ 6 7 8 9]
[ 8 9 10 11]
[10 11 12 13]]
"""