gpt4 book ai didi

python - 复制二维 numpy 数组中的边界

转载 作者:行者123 更新时间:2023-12-01 06:11:39 29 4
gpt4 key购买 nike

我正在尝试复制 2d numpy 数组的边界:

>>> from numpy import *
>>> test = array(range(9)).reshape(3,3)
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

有没有一种简单的方法可以在任意方向复制边框?

例如:

>>>> replicate(test, idx=0, axis=0, n=3) 
array([[0, 1, 2],
[0, 1, 2],
[0, 1, 2],
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

编辑:

以下函数完成了这项工作:

def replicate(a, xy, se, n):
rptIdx = numpy.ones(a.shape[0 if xy == 'X' else 1], dtype=int)
rptIdx[0 if se == 'start' else -1] = n + 1
return numpy.repeat(a, rptIdx, axis=0 if xy == 'X' else 1)

其中 xy 位于 ['X', 'Y'] 中,se 位于 ['start', 'end'] 中

最佳答案

您可以使用np.repeat:

In [5]: np.repeat(test, [4, 1, 1], axis=0)
Out[5]:
array([[0, 1, 2],
[0, 1, 2],
[0, 1, 2],
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])

但是对于较大/可变的数组,定义重复参数会更加困难([4, 1, 1],在本例中是您想要重复每行的次数) .

关于python - 复制二维 numpy 数组中的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5624355/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com