以八度为单位的代码:
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并为每次迭代插入列。让我知道是否有人可以帮助更好地清除此切片。
答案 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]]