[英]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.