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

2024-09-29 21:54:43 发布

您现在位置:Python中文网/ 问答频道 /正文

八度编码:

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

numpy代码:

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

这里我想给k-array添加列,假设k=(10,1)dim,我想在循环中使它(10,5)dim,上面是倍频程的代码,切片非常直接,但是有没有办法在每次迭代中切片k并插入列。如果有人能更好地清理这个切片,请告诉我


Tags: 代码innumpy编码fornp切片range
1条回答
网友
1楼 · 发布于 2024-09-29 21:54:43

这就是你要找的吗

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]]

相关问题 更多 >

    热门问题