我有一个2D Numpy瓷砖对象数组,用作贴图。外圈全部为"环形";墙";值以形成闭合边界。我想制作一个内部值的副本,以便在不接触外部行和列的情况下进行迭代。我正在尝试:
inner_values = map.tiles[1:-1][1:-1]
以剪切顶部和底部的行以及左侧和右侧的列。我的地图是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.]]
或者根据您的尺寸:
a = np.ones([100,70])
a[1:-1, 1:-1].shape
# (98, 68)