切片二维 NumPy 数组,删除第一行和最后一行和列
Slicing 2D NumPy Array, removing first and last row and column
我有一个 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)
我有一个 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)