繁体   English   中英

切片二维 NumPy 数组,删除第一行和最后一行和列

[英]Slicing 2D NumPy Array, removing first and last row and column

我有一个 2D Numpy 平铺对象数组,用作 map。 外环是所有“墙”值以形成封闭边界。 我想复制内部值以进行迭代而不触及外部行和列。 我正在努力:

inner_values = map.tiles[1:-1][1:-1]

切断顶部和底部行以及左右列。 我的 map 是 100*70,当我想要 (98, 68) 时,这一直给我一个形状数组 (96, 70)。 如何正确使用切片来获取我的内在价值? 谢谢!

你就在那里......你可以将所有索引放在括号内以获得你想要的:

import numpy as np

a = np.ones([5, 5])
print(a)

# [[1. 1. 1. 1. 1.]
#  [1. 1. 1. 1. 1.]
#  [1. 1. 1. 1. 1.]
#  [1. 1. 1. 1. 1.]
#  [1. 1. 1. 1. 1.]]


a[1:-1, 1:-1] = 0
print(a)
# [[1. 1. 1. 1. 1.]
#  [1. 0. 0. 0. 1.]
#  [1. 0. 0. 0. 1.]
#  [1. 0. 0. 0. 1.]
#  [1. 1. 1. 1. 1.]]

Python 计数从 0 开始,因此应该是 [0:-1] 而不是 [1:-1]。 当您说 [1:-1] 时,您是从每一侧切掉两列而不是一列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM