回答編集履歴
2
修正
answer
CHANGED
@@ -2,17 +2,53 @@
|
|
2
2
|
axis=1ならば第二引数の要素分だけ各行で要素がシフトすると認識しておりました。
|
3
3
|
|
4
4
|
違います。
|
5
|
-
axis=
|
5
|
+
axis=は、rollする軸です。3次元とかで考えてみたほうが理解しやすいと思います。
|
6
6
|
|
7
7
|
```python
|
8
|
-
>>> a = np.arange(
|
8
|
+
>>> a = np.arange(60).reshape(3,4,5)
|
9
|
-
>>> print(a)
|
10
|
-
[[0 1 2]
|
11
|
-
[3 4 5]]
|
12
9
|
>>> np.roll(a, 1, axis=0)
|
13
|
-
array([[
|
10
|
+
array([[[40, 41, 42, 43, 44],
|
11
|
+
[45, 46, 47, 48, 49],
|
14
|
-
|
12
|
+
[50, 51, 52, 53, 54],
|
13
|
+
[55, 56, 57, 58, 59]],
|
14
|
+
|
15
|
+
[[ 0, 1, 2, 3, 4],
|
16
|
+
[ 5, 6, 7, 8, 9],
|
17
|
+
[10, 11, 12, 13, 14],
|
18
|
+
[15, 16, 17, 18, 19]],
|
19
|
+
|
20
|
+
[[20, 21, 22, 23, 24],
|
21
|
+
[25, 26, 27, 28, 29],
|
22
|
+
[30, 31, 32, 33, 34],
|
23
|
+
[35, 36, 37, 38, 39]]])
|
15
24
|
>>> np.roll(a, 1, axis=1)
|
25
|
+
array([[[15, 16, 17, 18, 19],
|
26
|
+
[ 0, 1, 2, 3, 4],
|
27
|
+
[ 5, 6, 7, 8, 9],
|
28
|
+
[10, 11, 12, 13, 14]],
|
29
|
+
|
30
|
+
[[35, 36, 37, 38, 39],
|
31
|
+
[20, 21, 22, 23, 24],
|
32
|
+
[25, 26, 27, 28, 29],
|
33
|
+
[30, 31, 32, 33, 34]],
|
34
|
+
|
35
|
+
[[55, 56, 57, 58, 59],
|
36
|
+
[40, 41, 42, 43, 44],
|
37
|
+
[45, 46, 47, 48, 49],
|
38
|
+
[50, 51, 52, 53, 54]]])
|
39
|
+
>>> np.roll(a, 1, axis=2)
|
16
|
-
array([[
|
40
|
+
array([[[ 4, 0, 1, 2, 3],
|
41
|
+
[ 9, 5, 6, 7, 8],
|
42
|
+
[14, 10, 11, 12, 13],
|
43
|
+
[19, 15, 16, 17, 18]],
|
44
|
+
|
45
|
+
[[24, 20, 21, 22, 23],
|
46
|
+
[29, 25, 26, 27, 28],
|
47
|
+
[34, 30, 31, 32, 33],
|
17
|
-
|
48
|
+
[39, 35, 36, 37, 38]],
|
49
|
+
|
50
|
+
[[44, 40, 41, 42, 43],
|
51
|
+
[49, 45, 46, 47, 48],
|
52
|
+
[54, 50, 51, 52, 53],
|
53
|
+
[59, 55, 56, 57, 58]]])
|
18
54
|
```
|
1
例を追加
answer
CHANGED
@@ -2,4 +2,17 @@
|
|
2
2
|
axis=1ならば第二引数の要素分だけ各行で要素がシフトすると認識しておりました。
|
3
3
|
|
4
4
|
違います。
|
5
|
-
axis=0とaxis=1は、
|
5
|
+
axis=0とaxis=1は、rollする軸です。
|
6
|
+
|
7
|
+
```python
|
8
|
+
>>> a = np.arange(6).reshape(2,3)
|
9
|
+
>>> print(a)
|
10
|
+
[[0 1 2]
|
11
|
+
[3 4 5]]
|
12
|
+
>>> np.roll(a, 1, axis=0)
|
13
|
+
array([[3, 4, 5],
|
14
|
+
[0, 1, 2]])
|
15
|
+
>>> np.roll(a, 1, axis=1)
|
16
|
+
array([[2, 0, 1],
|
17
|
+
[5, 3, 4]])
|
18
|
+
```
|