【发布时间】:2015-11-17 00:07:52
【问题描述】:
我有一个包含 140 万个样本 x 32 个特征的数据集。
我想将每个样本转换为前 1000 个样本加上自身的串联数组。由于我没有前 1000 个样本的早期数据,因此我将其删除。 因此,每个样本在转换后具有 1001*32 个特征。 我使用下面的代码,但每次都会崩溃,即使在我的 12GB RAM 笔记本电脑上也是如此。我在这里做错了什么。我怎样才能使这个计算可行?
def take_previous_data(X_train,y):
temp_train_data=X_train[1000:]
temp_labels=y[1000:]
final_train_set=[]
for index,row in enumerate(temp_train_data):
actual_index=index+1000
final_train_set.append(X_train[actual_index-1000:actual_index+1].flatten())
return np.array(final_train_set),temp_labels
注意:使用 Python 2.7
【问题讨论】:
-
假设数据类型为float,1400000*1000*32*8/1024/1024/1024 = 333GB
-
crash是描述问题的糟糕方式。尽可能提供错误消息和上下文(堆栈跟踪)。它有助于准确地知道问题发生在代码中的哪个位置。此外,如果问题似乎与大小有关,请告诉我们哪些数据大小有效。 -
@hpaulj 没有错误。 python程序超过了我100%的内存使用率,我的电脑死机了。