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

2024-01-11

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

Example:

var = [22,33,44,55] # ==> len(var) = 4
n = 13

我想要的新数组是:

var_new = [22,33,44,55,22,33,44,55,22,33,44,55,22]

这是我的代码:

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

我收到错误消息:

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

但我得到了相应的变量:

var_new
array([ 22.,  33.,  44.,  55.,  22.,  33.,  44.,  55.,  22.,  33.,  44.,
    55.,  22.])

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


See also Repeat list to max number of elements https://stackoverflow.com/questions/39863250 for general methods not specific to Numpy.

See also Circular list iterator in Python https://stackoverflow.com/questions/23416381 for lazy iteration over such data.


有更好的方法来复制数组,例如您可以简单地使用np.resize https://docs.scipy.org/doc/numpy/reference/generated/numpy.resize.html:

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

如果新数组比原数组大,则新数组将被重复的副本填充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])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将数组复制到特定长度的数组 的相关文章

随机推荐