首页 > 解决方案 > 在 Python 中组合 Numpy 数组特征矩阵

问题描述

我有数据38910 rows and 2 columns。由于它是一个字符串数据,所以我使用了两种特征创建方法 A 和 B。

方法 A 给了我形状的 numpy 数组的数据:

a.shape = (38910, 17, 21)

方法 B 给了我形状的 numpy 数组的数据:

b.shape = (38910, 16, 441)

现在,为了应用卷积神经网络和其他方法,我需要结合这两个特征来制作一个 .numpy 数组shape = (38910, 17, 21, 16, 441)。我能做到这一点的最好方法是什么,这样我就不会遇到记忆问题。

标签: pythonnumpy

解决方案


避免内存问题的一种方法是批量处理行。假设您有一个combine_features(a, b)结合方法 A 和方法 B 的输出的函数,以下是解决方案的大致轮廓:

a_batches = np.array_split(a, 500)
b_batches = np.array_split(b, 500)
for i, batch in enumerate(zip(a_batches, b_batches)):
  a_batch, b_batch = batch
  output = combine_features(a_batch, b_batch)
  np.save(f"{destination_folder}/data-{i}.npy", output)

然后在训练时,您可以遍历保存的文件并一次加载一个。


推荐阅读