有什么办法可以在numpy的循环中插入列

时间:2020-09-04 07:54:44

标签: python arrays numpy matrix slice

以八度为单位的代码:

 for j = 0:5
        k(:, end+1) = (X1.^j)

numpy中的代码:

 for j in range(0,5):
        k[?]=np.power(X1,j)

所以在这里我想向k数组中添加列,假设k =(10,1)dim,并且我想在循环中使其(10,5)dim,上面是倍频程中的代码,并且切片非常多直接,但是有什么方法可以分割K并为每次迭代插入列。让我知道是否有人可以帮助更好地清除此切片。

1 个答案:

答案 0 :(得分:0)

这是您要寻找的吗?:

np.tile(np.arange(5)**2,10).reshape(-1,5)

输出:

[[ 0  1  4  9 16]
 [ 0  1  4  9 16]
 [ 0  1  4  9 16]
 [ 0  1  4  9 16]
 [ 0  1  4  9 16]
 [ 0  1  4  9 16]
 [ 0  1  4  9 16]
 [ 0  1  4  9 16]
 [ 0  1  4  9 16]
 [ 0  1  4  9 16]]

但是如果您坚持使用循环来完成操作,这是一个不好的主意:

k = np.zeros((10,1), dtype=int)
print(k)
for j in np.arange(5):
  k = np.hstack((k,[[j**2]]*k.shape[0]))

[[ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]
 [ 0  0  1  4  9 16]]