我会尽力为您翻译以下it技术相关内容:将一个列(第三列)中的三个值提取出来,放入新的3列中,并将新旧列合并到一个新的矩阵A中。在输入的时间序列中,第1列和第2列的数值对应第3列的数值。
因篇幅所限,代码首先会生成一个6行/3列的矩阵。我想用最后一列填充3个额外的列,并将其合并成一个新的矩阵A。为了抵消初始位置,这个矩阵A已经预先填充了2行。
以下是我在代码中实现这个思路,但它处理大型数据集时需要很长时间。如何提高此转换的速度。
[x x 1]
[x x 2]
[x x 3]
输出:矩阵A
[x x 1 0 0 0]
[x x 2 0 0 0]
[x x 3 1 2 3]
[x x 4 2 3 4]
因篇幅所限,代码首先会生成一个6行/3列的矩阵。我想用最后一列填充3个额外的列,并将其合并成一个新的矩阵A。为了抵消初始位置,这个矩阵A已经预先填充了2行。
以下是我在代码中实现这个思路,但它处理大型数据集时需要很长时间。如何提高此转换的速度。
import numpy as np
matrix = np.arange(18).reshape((6, 3))
nr=3
A = np.zeros((nr-1,nr))
for x in range( matrix.shape[0]-nr+1):
newrow = (np.transpose( matrix[x:x+nr,2:3] ))
A = np.vstack([A , newrow])
total= np.column_stack((matrix,A))
print (total)