質問編集履歴

2

題名の追記

2017/12/11 01:04

投稿

simasima
simasima

スコア49

test CHANGED
@@ -1 +1 @@
1
- N次元の配列を特定の2次元配列としてsplit したい
1
+ N次元の配列を2次元配列として分割したい。(配列arr を 軸 i, j により分割する split(arr, i, j) のような関数を制作したい
test CHANGED
File without changes

1

追記

2017/12/11 01:04

投稿

simasima
simasima

スコア49

test CHANGED
File without changes
test CHANGED
@@ -48,60 +48,52 @@
48
48
 
49
49
 
50
50
 
51
+ 多次元の場合は
52
+
53
+ ```python
54
+
51
- 多次元の場合はこのような関数がないと思われるのですが、どのように対応するのがよろしいでしょうか。
55
+ A = np.arange(24).reshape(2,4,3)
56
+
57
+ # array([[[ 0, 1, 2],
58
+
59
+ # [ 3, 4, 5],
60
+
61
+ # [ 6, 7, 8],
62
+
63
+ # [ 9, 10, 11]],
64
+
65
+ #
66
+
67
+ # [[12, 13, 14],
68
+
69
+ # [15, 16, 17],
70
+
71
+ # [18, 19, 20],
72
+
73
+ # [21, 22, 23]]])
52
74
 
53
75
 
54
76
 
55
- 具体的には
77
+ C = [A[i,:,:] for i in range(A.shape[0])]
56
78
 
57
- ```pytho
79
+ # [array([[ 0, 1, 2],
58
80
 
59
- [[[ 0 1 2]
81
+ # [ 3, 4, 5],
60
82
 
61
- [ 3 4 5]
83
+ # [ 6, 7, 8],
62
84
 
63
- [ 6 7 8]
85
+ # [ 9, 10, 11]]),
64
86
 
65
- [ 9 10 11]]
87
+ # array([[12, 13, 14],
66
88
 
89
+ # [15, 16, 17],
67
90
 
91
+ # [18, 19, 20],
68
92
 
69
- [[12 13 14]
70
-
71
- [15 16 17]
72
-
73
- [18 19 20]
74
-
75
- [21 22 23]]]
93
+ # [21, 22, 23]])]
76
94
 
77
95
 
78
96
 
79
97
  ```
80
98
 
81
- の3次元配列から
82
-
83
-
84
-
85
-
86
-
87
- ```python
88
-
89
- [array([[ 0 1 2]
90
-
91
- [ 3 4 5]
92
-
93
- [ 6 7 8]
94
-
95
- [ 9 10 11]])
96
-
97
- array([[12 13 14]
98
-
99
- [15 16 17]
100
-
101
- [18 19 20]
102
-
103
- [21 22 23]])
104
-
105
- ```
106
-
107
- のようなをしいと考えていす。
99
+ のように分割を行うことができますが、 A[i,:,:]とA.shape(0)の二つの情報の指定が2度手間であると感じられます。うまく対処する関数どあしたら教えていただけると幸いです。