【发布时间】:2022-01-08 04:08:35
【问题描述】:
如果我在我的数据集上调用此函数:
def reconstruct_flight(data, sequence_lenght, flight_len, param_len):
stack_factor = int(flight_len/sequence_lenght)
data_reconstructed = []
for i in range(0, len(data_clean), stack_factor):
if i<len(data_clean):
data_reconstructed.append(
data[i:i+stack_factor].reshape(
[flight_len, param_len])
)
return np.array(data_reconstructed)
我收到以下错误:
ValueError: cannot reshape array of size 0 into shape (1500,77)
但如果我在控制台中运行 for 循环而不将其作为函数传递:
data_reconstructed = []
for i in range(0, len(data_clean), stack_factor):
if i<len(data_clean):
data_reconstructed.append(
data[i:i+stack_factor].reshape(
[flight_len, param_len])
)
它按预期工作。这是为什么呢?
【问题讨论】:
-
data_clean定义在哪里? -
如果
data已经是一个 numpy 数组,你应该在 numpy 中重塑(可能先裁剪)而不是创建列表然后转换为数组 -
@Learningisamess 'data_clean' 是一个形状为 (300, 50, 77) 的 numpy 数组,reshape 是 (10, 1500, 77)。您能否详细说明如何在不使用列表而仅使用重塑的情况下将这个元素堆叠在一起?
标签: python-3.x numpy numpy-ndarray