Python 如何将timeseries数据作为numpy ndarray执行重叠窗口化
我有一个时间序列数据集作为一个numpy数组的形状:Python 如何将timeseries数据作为numpy ndarray执行重叠窗口化,python,numpy,multidimensional-array,time-series,Python,Numpy,Multidimensional Array,Time Series,我有一个时间序列数据集作为一个numpy数组的形状: (批次大小、观察值、传感器编号 例如: (3,10,2) 三批两个传感器,每个传感器的时间序列数据长度为10 在这个numpy数组上,我现在想要重塑时间序列的长度,并指定一个重叠因子。 下面是一个示例,尝试从上面更改原始数据集: 每个样本的新周期长度应为5,我希望样本重叠0.4(40%)。为简单起见,时间序列数据为1…10 shape(3,10,2)的原始数据集如下所示: array([[[ 1, 2],[ 3, 4],[ 5, 6],
(批次大小、观察值、传感器编号
例如:(3,10,2)
三批两个传感器,每个传感器的时间序列数据长度为10
在这个numpy数组上,我现在想要重塑时间序列的长度
,并指定一个重叠
因子。下面是一个示例,尝试从上面更改原始数据集: 每个样本的新周期长度应为
5
,我希望样本重叠0.4(40%)。为简单起见,时间序列数据为1…10
shape(3,10,2)的原始数据集如下所示:
array([[[ 1, 2],[ 3, 4],[ 5, 6],[ 7, 8],[ 9, 10],
[ 1, 2],[ 3, 4],[ 5, 6],[ 7, 8],[ 9, 10]],
[[ 1, 2],[ 3, 4],[ 5, 6],[ 7, 8],[ 9, 10],
[ 1, 2],[ 3, 4],[ 5, 6],[ 7, 8],[ 9, 10]],
[[ 1, 2],[ 3, 4],[ 5, 6],[ 7, 8],[ 9, 10],
[ 1, 2],[ 3, 4],[ 5, 6],[ 7, 8],[ 9, 10]]])
我希望新的、经过重塑的numpy阵列具有以下形状:
(6,5,2)
。每个chunck都将如下图所示打开窗口:重叠:对于新的目标长度5,40%的重叠意味着上一个样本中的两个元素重叠到下一个样本中。
因此,仅使用有效长度时间序列元素进行重塑意味着在上述情况下,通过将原始时间序列分为两个较短的时间序列,并在样本之间重叠,使原始数据量翻倍。
我尝试了两种方法,通过迭代for循环中的所有元素来重塑它,但这需要很多时间,因此我认为必须有一种更有效的方法,例如向量化操作
任何人都能提供帮助和提示吗?谢谢你的建议。让我们进行6次观察,每3批2个传感器
data = np.arange(3*6).reshape((3,6))[:,:, None] * ((1,1))
size = 3
step = 2
print("data:\n", data)
输出:
data:
[[[ 0 0]
[ 1 1]
[ 2 2]
[ 3 3]
[ 4 4]
[ 5 5]]
[[ 6 6]
[ 7 7]
[ 8 8]
[ 9 9]
[10 10]
[11 11]]
[[12 12]
[13 13]
[14 14]
[15 15]
[16 16]
[17 17]]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
Indexes of observations:
[[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]]
Indexes for batch:
[[0 0 0]
[0 0 0]
[1 1 1]
[1 1 1]
[2 2 2]
[2 2 2]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
我猜这是一种优雅的方式。它使用列表理解,这通常比正常的循环更快,尤其是在这里,因为我不循环数据,而是通过每个窗口的第一个索引
# Range until the last index where it is possible to start a window
last_start = data.shape[1] - size + 1
period_starts = range(0, last_start, step)
reshaped_data = np.concatenate(
[data[:,k:k+size] for k in period_starts],
axis=1).reshape(-1, size, data.shape[2])
print('Reshaped data:\n', reshaped_data)
输出:
data:
[[[ 0 0]
[ 1 1]
[ 2 2]
[ 3 3]
[ 4 4]
[ 5 5]]
[[ 6 6]
[ 7 7]
[ 8 8]
[ 9 9]
[10 10]
[11 11]]
[[12 12]
[13 13]
[14 14]
[15 15]
[16 16]
[17 17]]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
Indexes of observations:
[[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]]
Indexes for batch:
[[0 0 0]
[0 0 0]
[1 1 1]
[1 1 1]
[2 2 2]
[2 2 2]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
如果我们在列表理解过程中不计算时间间隔,可能会更快,尽管此时您可能不需要进一步增强:
period_intervals = np.array((period_starts, period_starts + size)).T
reshaped_data = np.concatenate(
[data[:,i:j] for i,j in period_intervals],
axis=1).reshape(-1, size, data.shape[2])
或者,您可以使用索引,但在这种情况下,做同样的事情感觉要复杂得多,代码也要复杂得多(请参阅):
输出:
data:
[[[ 0 0]
[ 1 1]
[ 2 2]
[ 3 3]
[ 4 4]
[ 5 5]]
[[ 6 6]
[ 7 7]
[ 8 8]
[ 9 9]
[10 10]
[11 11]]
[[12 12]
[13 13]
[14 14]
[15 15]
[16 16]
[17 17]]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
Indexes of observations:
[[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]]
Indexes for batch:
[[0 0 0]
[0 0 0]
[1 1 1]
[1 1 1]
[2 2 2]
[2 2 2]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
很抱歉,这只是我第一次尝试,才意识到我可以以一种更简单、更优雅的方式使用我以前的(错误的)方法。让我们进行6次观察,每3批2个传感器
data = np.arange(3*6).reshape((3,6))[:,:, None] * ((1,1))
size = 3
step = 2
print("data:\n", data)
size = 5
step = 3
new_dataset = False
for batch in np.arange(0,data_array.shape[0],1):
sample_data = data_array[batch].T
sensor_buffer = False
for sensor in np.arange(0,sample_data.shape[0],1):
time_series = sample_data[sensor]
splitted_timeseries = [time_series[i : i + size] for i in range(0,len(time_series), step)]
valid_splitts = np.asarray([splitted_ts for splitted_ts in splitted_timeseries if len(splitted_ts)==size])
valid_splitts = valid_splitts.reshape(valid_splitts.shape[0],
size,
1)
if type(sensor_buffer) == bool:
sensor_buffer = valid_splitts.copy()
else:
sensor_buffer = np.concatenate((sensor_buffer,valid_splitts.copy()),axis=-1)
if type(new_dataset) == bool:
new_dataset = sensor_buffer.copy()
print(new_dataset.shape)
else:
new_dataset = np.concatenate((new_dataset,sensor_buffer),axis=0)
new_dataset.shape
输出:
data:
[[[ 0 0]
[ 1 1]
[ 2 2]
[ 3 3]
[ 4 4]
[ 5 5]]
[[ 6 6]
[ 7 7]
[ 8 8]
[ 9 9]
[10 10]
[11 11]]
[[12 12]
[13 13]
[14 14]
[15 15]
[16 16]
[17 17]]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
Indexes of observations:
[[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]]
Indexes for batch:
[[0 0 0]
[0 0 0]
[1 1 1]
[1 1 1]
[2 2 2]
[2 2 2]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
我猜这是一种优雅的方式。它使用列表理解,这通常比正常的循环更快,尤其是在这里,因为我不循环数据,而是通过每个窗口的第一个索引
# Range until the last index where it is possible to start a window
last_start = data.shape[1] - size + 1
period_starts = range(0, last_start, step)
reshaped_data = np.concatenate(
[data[:,k:k+size] for k in period_starts],
axis=1).reshape(-1, size, data.shape[2])
print('Reshaped data:\n', reshaped_data)
输出:
data:
[[[ 0 0]
[ 1 1]
[ 2 2]
[ 3 3]
[ 4 4]
[ 5 5]]
[[ 6 6]
[ 7 7]
[ 8 8]
[ 9 9]
[10 10]
[11 11]]
[[12 12]
[13 13]
[14 14]
[15 15]
[16 16]
[17 17]]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
Indexes of observations:
[[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]]
Indexes for batch:
[[0 0 0]
[0 0 0]
[1 1 1]
[1 1 1]
[2 2 2]
[2 2 2]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
如果我们在列表理解过程中不计算时间间隔,可能会更快,尽管此时您可能不需要进一步增强:
period_intervals = np.array((period_starts, period_starts + size)).T
reshaped_data = np.concatenate(
[data[:,i:j] for i,j in period_intervals],
axis=1).reshape(-1, size, data.shape[2])
或者,您可以使用索引,但在这种情况下,做同样的事情感觉要复杂得多,代码也要复杂得多(请参阅):
输出:
data:
[[[ 0 0]
[ 1 1]
[ 2 2]
[ 3 3]
[ 4 4]
[ 5 5]]
[[ 6 6]
[ 7 7]
[ 8 8]
[ 9 9]
[10 10]
[11 11]]
[[12 12]
[13 13]
[14 14]
[15 15]
[16 16]
[17 17]]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
Indexes of observations:
[[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]
[0 1 2]
[2 3 4]]
Indexes for batch:
[[0 0 0]
[0 0 0]
[1 1 1]
[1 1 1]
[2 2 2]
[2 2 2]]
Reshaped data:
[[[ 0 0]
[ 1 1]
[ 2 2]]
[[ 2 2]
[ 3 3]
[ 4 4]]
[[ 6 6]
[ 7 7]
[ 8 8]]
[[ 8 8]
[ 9 9]
[10 10]]
[[12 12]
[13 13]
[14 14]]
[[14 14]
[15 15]
[16 16]]]
很抱歉,包括它,这只是我第一次尝试之前,我意识到我可以使用我以前的(错误的)方式在一个更简单和优雅的方式
size = 5
step = 3
new_dataset = False
for batch in np.arange(0,data_array.shape[0],1):
sample_data = data_array[batch].T
sensor_buffer = False
for sensor in np.arange(0,sample_data.shape[0],1):
time_series = sample_data[sensor]
splitted_timeseries = [time_series[i : i + size] for i in range(0,len(time_series), step)]
valid_splitts = np.asarray([splitted_ts for splitted_ts in splitted_timeseries if len(splitted_ts)==size])
valid_splitts = valid_splitts.reshape(valid_splitts.shape[0],
size,
1)
if type(sensor_buffer) == bool:
sensor_buffer = valid_splitts.copy()
else:
sensor_buffer = np.concatenate((sensor_buffer,valid_splitts.copy()),axis=-1)
if type(new_dataset) == bool:
new_dataset = sensor_buffer.copy()
print(new_dataset.shape)
else:
new_dataset = np.concatenate((new_dataset,sensor_buffer),axis=0)
new_dataset.shape
这是我当前的版本,它给出了正确的结果。大小指定了新时间序列的长度和步长(定义重叠的另一种方式)
对于这样的数据集数组:
array([[[ 1., 1.],
[ 2., 2.],
[ 3., 3.],
[ 4., 4.],
[ 5., 5.],
[ 6., 6.],
[ 7., 7.],
[ 8., 8.],
[ 9., 9.],
[10., 10.]],
[[ 1., 1.],
[ 2., 2.],
[ 3., 3.],
[ 4., 4.],
[ 5., 5.],
[ 6., 6.],
[ 7., 7.],
[ 8., 8.],
[ 9., 9.],
[10., 10.]],
[[ 1., 1.],
[ 2., 2.],
[ 3., 3.],
[ 4., 4.],
[ 5., 5.],
[ 6., 6.],
[ 7., 7.],
[ 8., 8.],
[ 9., 9.],
[10., 10.]]])
它给出了(6,5,2)的正确形状和有效的时间序列块:
array([[[1., 1.],
[2., 2.],
[3., 3.],
[4., 4.],
[5., 5.]],
[[4., 4.],
[5., 5.],
[6., 6.],
[7., 7.],
[8., 8.]],
[[1., 1.],
[2., 2.],
[3., 3.],
[4., 4.],
[5., 5.]],
[[4., 4.],
[5., 5.],
[6., 6.],
[7., 7.],
[8., 8.]],
[[1., 1.],
[2., 2.],
[3., 3.],
[4., 4.],
[5., 5.]],
[[4., 4.],
[5., 5.],
[6., 6.],
[7., 7.],
[8., 8.]]])
这是我当前的版本,它给出了正确的结果。大小指定了新时间序列的长度和步长(定义重叠的另一种方式)
对于这样的数据集数组:
array([[[ 1., 1.],
[ 2., 2.],
[ 3., 3.],
[ 4., 4.],
[ 5., 5.],
[ 6., 6.],
[ 7., 7.],
[ 8., 8.],
[ 9., 9.],
[10., 10.]],
[[ 1., 1.],
[ 2., 2.],
[ 3., 3.],
[ 4., 4.],
[ 5., 5.],
[ 6., 6.],
[ 7., 7.],
[ 8., 8.],
[ 9., 9.],
[10., 10.]],
[[ 1., 1.],
[ 2., 2.],
[ 3., 3.],
[ 4., 4.],
[ 5., 5.],
[ 6., 6.],
[ 7., 7.],
[ 8., 8.],
[ 9., 9.],
[10., 10.]]])
它给出了(6,5,2)的正确形状和有效的时间序列块:
array([[[1., 1.],
[2., 2.],
[3., 3.],
[4., 4.],
[5., 5.]],
[[4., 4.],
[5., 5.],
[6., 6.],
[7., 7.],
[8., 8.]],
[[1., 1.],
[2., 2.],
[3., 3.],
[4., 4.],
[5., 5.]],
[[4., 4.],
[5., 5.],
[6., 6.],
[7., 7.],
[8., 8.]],
[[1., 1.],
[2., 2.],
[3., 3.],
[4., 4.],
[5., 5.]],
[[4., 4.],
[5., 5.],
[6., 6.],
[7., 7.],
[8., 8.]]])
这三行应该可以做到这一点:
obs_starts = list(range(0,
1+old_obs_len - new_obs_len,
int(round((1-overlap)*new_obs_len))))
obs_indices = [list(range(x, x+new_obs_len)) for x in obs_starts]
new_A = A[:, obs_indices, :].reshape(-1, new_obs_len, num_sens)
此处:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
A
是您的数组,具有形状(num\u batches,old\u obs\u len,num\u sens)
new\u A
是一个新数组,其形状为(-1,new\u obs\u len,num\u sens)
overlap
是重叠率
请注意,数组没有重复的连接或平铺。因此,在引擎盖下对数组数据的复制最少。前两行用于构建嵌套索引列表。第三行使用此索引“array”对a
进行索引,并对结果进行塑形
设置演示数据:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
数据设置输出:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例1:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例1的输出(打印(新的)
):
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例2:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例2的输出:(print(new_A)
):
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例3:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例1的输出(print(new_A[16:18,:,::])
):
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
这三行应该可以做到这一点:
obs_starts = list(range(0,
1+old_obs_len - new_obs_len,
int(round((1-overlap)*new_obs_len))))
obs_indices = [list(range(x, x+new_obs_len)) for x in obs_starts]
new_A = A[:, obs_indices, :].reshape(-1, new_obs_len, num_sens)
此处:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
A
是您的数组,具有形状(num\u batches,old\u obs\u len,num\u sens)
new\u A
是一个新数组,其形状为(-1,new\u obs\u len,num\u sens)
overlap
是重叠率
请注意,数组没有重复的连接或平铺。因此,在引擎盖下对数组数据的复制最少。前两行用于构建嵌套索引列表。第三行使用此索引“array”对a
进行索引,并对结果进行塑形
设置演示数据:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
数据设置输出:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例1:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例1的输出(打印(新的)
):
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例2:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例2的输出:(print(new_A)
):
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例3:
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
测试用例1的输出(print(new_A[16:18,:,::])
):
import numpy as np
num_batches = 3 # Initial value
old_obs_len = 20 # Initial value
num_sens = 2
# Demo data
A = np.arange(num_batches*old_obs_len*num_sens).reshape(num_batches,
old_obs_len,
num_sens)
print (A.shape)
print (A)
(3, 20, 2)
[[[ 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]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.5
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]]
[[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]
[ 36 37]
[ 38 39]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]]
[[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]
[ 76 77]
[ 78 79]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
overlap = 0.2
new_obs_len = 10
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[ 10 11]
[ 12 13]
[ 14 15]
[ 16 17]
[ 18 19]]
[[ 16 17]
[ 18 19]
[ 20 21]
[ 22 23]
[ 24 25]
[ 26 27]
[ 28 29]
[ 30 31]
[ 32 33]
[ 34 35]]
[[ 40 41]
[ 42 43]
[ 44 45]
[ 46 47]
[ 48 49]
[ 50 51]
[ 52 53]
[ 54 55]
[ 56 57]
[ 58 59]]
[[ 56 57]
[ 58 59]
[ 60 61]
[ 62 63]
[ 64 65]
[ 66 67]
[ 68 69]
[ 70 71]
[ 72 73]
[ 74 75]]
[[ 80 81]
[ 82 83]
[ 84 85]
[ 86 87]
[ 88 89]
[ 90 91]
[ 92 93]
[ 94 95]
[ 96 97]
[ 98 99]]
[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]]
overlap = 0.8
new_obs_len = 10
[[[ 96 97]
[ 98 99]
[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]]
[[100 101]
[102 103]
[104 105]
[106 107]
[108 109]
[110 111]
[112 113]
[114 115]
[116 117]
[118 119]]]
请提供一个数字示例,其中较早的形状可能是
(3,20,2)