gpt4 book ai didi

python - 如何在 Python 中获取 numpy 数组周边的值?

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:12 26 4
gpt4 key购买 nike

我有一个 2d numpy 数组,但我只想将边界周围的值作为列表,就像您在盒子周边走动一样。

为了说明这一点,对于二维数组,我想从一个角开始并获取框周围的值

enter image description here

所以结果看起来像这样...... enter image description here

最佳答案

给定一个名为 array 的二维数组...

import numpy as np
x, y = np.meshgrid(range(1,6), range(5))
array=x*y
array[0,0]=999

...看起来像这样:

array([[999,   0,   0,   0,   0],
[ 1, 2, 3, 4, 5],
[ 2, 4, 6, 8, 10],
[ 3, 6, 9, 12, 15],
[ 4, 8, 12, 16, 20]])

我们可以通过一些深思熟虑的切片来获取边界周围的值...

border = []
border += list(array[0, :-1]) # Top row (left to right), not the last element.
border += list(array[:-1, -1]) # Right column (top to bottom), not the last element.
border += list(array[-1, :0:-1]) # Bottom row (right to left), not the last element.
border += list(array[::-1, 0]) # Left column (bottom to top), all elements element.

注意:我们不想重复计算角点。这就是为什么我们不包含每个行/列切片中的最后一个元素。但是,在最后一个语句中,我们包含最后一个元素来关闭路径。

边框的值:

array([999,   0,   0,   0,   0,   5,  10,  15,  20,  16,  12,   8,   4,
3, 2, 1, 999])
<小时/>

我将其转换为一个函数,允许您指定从哪个角开始并逆时针或顺时针绕数组走动 ( https://gist.github.com/blaylockbk/a70537b41050d1d761ab6c5ab6e4bd43 )

关于python - 如何在 Python 中获取 numpy 数组周边的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60012540/

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