我有一个维度为M
的矩阵(m, n)
,我需要从维度为L
的矩阵(m, l)
添加新列。所以基本上我最终会得到一个矩阵(m, n + l)
。
这样做没问题,我可以使用:
以下列方式np.command(M, L)
,它将返回一个新矩阵。出现问题的原因是我需要在原始矩阵中附加许多矩阵,并且事先不知道这些矩阵L
的大小。
所以我最终得到了
# M is my original matrix
while:
# find out my L matrix
M = np.append(M, L)
# check if I do not need to append the matrix
知道我的矩阵M
大约有10万行,而我平均增加了5k列,这个过程非常慢,需要花费几个小时(我不知道确切的多长时间因为我2小时后放弃了。)
此问题显然在此append
函数中(我使用vstack
进行了尝试,但没有任何变化)。此外,如果我只计算矩阵L
(不附加它们),我花费不到10分钟完成任务。我认为矩阵的这种重新分配是使它变慢的原因。直觉上它是有道理的,因为我不断重新创建矩阵M
并删除旧矩阵。但我不知道如何摆脱重新分配的部分。
一个想法是事先创建一个空矩阵然后用正确的列填充它应该更快,但问题是我不知道我应该创建它的维度(没有办法预测列数在我的矩阵中。)
那么如何在这里提高绩效呢?