我有一个输入数组X.
1.8.2
有人可以帮我理解下面的代码 -
[[68 72 2 0 15 74 34 20 36 3]
[20 2 79 20 80 45 15 20 11 45]
[42 13 80 35 3 3 38 70 74 75]
[80 20 78 5 34 13 80 11 20 72]
[20 13 15 20 13 75 81 20 75 13]
[20 32 15 20 29 2 75 3 45 80]
[72 74 80 20 64 45 79 74 20 1]
[37 20 6 5 15 20 80 45 29 20]
[15 20 13 75 80 65 15 35 20 60]
[20 75 2 13 78 20 15 45 20 72]]
答案 0 :(得分:3)
首先:
y = np.zeros_like(x)
这将创建一个充满零的数组,其大小与x
相同,并将其存储在y
中。
然后y[:, :-1], y[:, -1]
< - 除最后一列以外的所有列,以及最后一列
设置为=
:
x[:, 1:], x[:, 0]
< - 除第一列和第一列外的其他所有内容。
将第一列滚动到最后一列是一种非常低效的方法。
更好的方法是
y = np.roll(x, -1, axis = 1)
答案 1 :(得分:0)
简写:
y = np.zeros_like(x)
y[:, :-1] = x[:, 1:]
y[:, -1] = x[:, 0]
转换为:
使y
与0
尺寸相同的x
数组。
设置y
的部分,其中包括除最后一行之外的所有行和所有列等于x
的部分,其中包括除第一行之外的所有行和所有列。
将y
的最后一列设为等于x
的第一列。
基本上,y
看起来像x
,除非第一列被移除并在最后添加。