假设x
是一个具有 N 个元素的 NumPy 数组,索引为 0..N-1。可以说x[:k]
表示从0..k-1开始的所有元素,x[k:]
表示k..N-1,x[k1:k2]
表示k1..k2-1。最后,x[:]
表示所有元素。
因此,在您的代码中,四行正在设置:
- 最后一行,所有列
Ttop
- 第一行,所有列
Tbottom
- 所有行,最后一列
Tright
- 所有行,第一列
Tleft
切片文档可能是一个很好的参考:https ://docs.scipy.org/doc/numpy/reference/arrays.indexing.html
T
您可以通过在 Python 命令行界面中的每次操作后打印来快速向自己证明这一点。启动 python, import numpy as np
, 将lenX
和更改lenY
为一些小东西以使其更易于阅读,并将初始化值更改为唯一的,以便我们可以跟踪更改:
>>> lenX = lenY = 5
>>> Ttop = 100
>>> Tbottom = 200
>>> Tleft = 300
>>> Tright = 400
>>> Tguess = 30
>>> T = np.empty((lenX, lenY))
>>> T.fill(Tguess)
然后我们走了:
>>> T[(lenY-1):, :] = Ttop
>>> T
array([[ 30., 30., 30., 30., 30.],
[ 30., 30., 30., 30., 30.],
[ 30., 30., 30., 30., 30.],
[ 30., 30., 30., 30., 30.],
[100., 100., 100., 100., 100.]])
>>> T[:1, :] = Tbottom
>>> T
array([[200., 200., 200., 200., 200.],
[ 30., 30., 30., 30., 30.],
[ 30., 30., 30., 30., 30.],
[ 30., 30., 30., 30., 30.],
[100., 100., 100., 100., 100.]])
>>> T[:, (lenX-1):] = Tright
>>> T
array([[200., 200., 200., 200., 400.],
[ 30., 30., 30., 30., 400.],
[ 30., 30., 30., 30., 400.],
[ 30., 30., 30., 30., 400.],
[100., 100., 100., 100., 400.]])
>>> T[:, :1] = Tleft
>>> T
array([[300., 200., 200., 200., 400.],
[300., 30., 30., 30., 400.],
[300., 30., 30., 30., 400.],
[300., 30., 30., 30., 400.],
[300., 100., 100., 100., 400.]])