如何将数组复制到特定长度的数组

del*_*a27 3 python replication numpy python-3.x

我想将一个小数组复制到特定长度的数组

例:

var = [22,33,44,55] # ==> len(var) = 4
n = 13
Run Code Online (Sandbox Code Playgroud)

我想要的新数组是:

var_new = [22,33,44,55,22,33,44,55,22,33,44,55,22]
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import numpy as np
var = [22,33,44,55]
di = np.arange(13)
var_new = np.empty(13)
var_new[di] = var
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

DeprecationWarning:分配将在将来引发错误,最有可能是因为索引结果形状与值数组形状不匹配。您可以arr.flat[index] = values用来保留旧的行为。

但是我得到了相应的变量:

var_new
array([ 22.,  33.,  44.,  55.,  22.,  33.,  44.,  55.,  22.,  33.,  44.,
    55.,  22.])
Run Code Online (Sandbox Code Playgroud)

那么,如何解决错误呢?还有其他选择吗?

MSe*_*ert 5

有更好的方法来复制数组,例如,您可以简单地使用np.resize

返回具有指定形状的新数组。

如果新数组大于原始数组,则新数组将填充的重复副本a。[...]

>>> import numpy as np
>>> var = [22,33,44,55]
>>> n = 13
>>> np.resize(var, n)
array([22, 33, 44, 55, 22, 33, 44, 55, 22, 33, 44, 55, 22])
Run Code Online (Sandbox Code Playgroud)