回答編集履歴

6

d

2020/06/12 06:49

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -136,8 +136,6 @@
136
136
 
137
137
  # [1 2 3 4 5 6]
138
138
 
139
- # [1 2 3 4 5 6]
140
-
141
139
  print(np.hstack(arrays))
142
140
 
143
141
  # [[1 4]

5

d

2020/06/12 06:49

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  b = np.array([4, 5, 6, 7, 8])
72
72
 
73
- print(np.c_[a, b])
73
+ print(np.r_[a, b])
74
74
 
75
75
  # [1 2 3 4 5 6 7 8]
76
76
 
@@ -109,3 +109,101 @@
109
109
  # [3 4 8 9]]
110
110
 
111
111
  ```
112
+
113
+
114
+
115
+ ## 追記
116
+
117
+
118
+
119
+ 挙動の違いとしては、
120
+
121
+
122
+
123
+ * どの方向で結合するか
124
+
125
+ * 渡した配列の次元数が規定未満の場合は、結合前に次元を拡張するものがある
126
+
127
+ → 例えば、numpy.vstack() に1次元配列を渡すと [1, 2, 3] →[[1, 2, 3]] のように形状を変更してから結合します。
128
+
129
+
130
+
131
+ ```python
132
+
133
+ arrays = ([1, 2, 3], [4, 5, 6])
134
+
135
+ print(np.r_[arrays])
136
+
137
+ # [1 2 3 4 5 6]
138
+
139
+ # [1 2 3 4 5 6]
140
+
141
+ print(np.hstack(arrays))
142
+
143
+ # [[1 4]
144
+
145
+ # [2 5]
146
+
147
+ # [3 6]]
148
+
149
+ print(np.c_[arrays])
150
+
151
+ # [[1 2 3]
152
+
153
+ # [4 5 6]]
154
+
155
+ print(np.vstack(arrays))
156
+
157
+ # [[1 2]
158
+
159
+ # [3 4]
160
+
161
+ # [5 6]
162
+
163
+ # [7 8]]
164
+
165
+
166
+
167
+ arrays = (
168
+
169
+ [[1, 2], [3, 4]],
170
+
171
+ [[5, 6], [7, 8]],
172
+
173
+ )
174
+
175
+
176
+
177
+ print(np.r_[arrays])
178
+
179
+ # [[1 2]
180
+
181
+ # [3 4]
182
+
183
+ # [5 6]
184
+
185
+ # [7 8]]
186
+
187
+ print(np.hstack(arrays))
188
+
189
+ # [[1 2 5 6]
190
+
191
+ # [3 4 7 8]]
192
+
193
+ print(np.c_[arrays])
194
+
195
+ # [[1 2 5 6]
196
+
197
+ # [3 4 7 8]]
198
+
199
+ print(np.vstack(arrays))
200
+
201
+ # [[1 2]
202
+
203
+ # [3 4]
204
+
205
+ # [5 6]
206
+
207
+ # [7 8]]
208
+
209
+ ```

4

s

2020/06/12 06:43

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,12 +1,12 @@
1
- np.vstack と numpy.r_ が対応していて、numpy.hstack() と numpy.c_ が対応しているという捉え方をするのではなく、**これらの関数はすべて異なる挙動を持つ**が、
1
+ numpy.vstack() と numpy.r_ が対応していて、numpy.hstack() と numpy.c_ が対応しているという捉え方をするのではなく、**これらの関数はすべて異なる挙動を持つ**が、
2
2
 
3
3
 
4
4
 
5
5
 
6
6
 
7
- * 2次元配列同士を結合したら、**結果として**、np.vstack と numpy.r_、numpy.hstack() と numpy.c_ が同じになった
7
+ * 2次元配列同士を結合したら、**結果として**、numpy.vstack() と numpy.r_、numpy.hstack() と numpy.c_ が同じになった
8
8
 
9
- * 1次元配列同士を結合したら、**結果として**、np.hstack と numpy.r_ が同じになった
9
+ * 1次元配列同士を結合したら、**結果として**、numpy.hstack() と numpy.r_ が同じになった
10
10
 
11
11
 
12
12
 
@@ -82,7 +82,7 @@
82
82
 
83
83
 
84
84
 
85
- とくに numpy.r_ は最初のカンマ前に文字列で結合する axis を指定する機能があるので、他の hstack、vstack、c_ の3つのどれにもなれます。
85
+ とくに numpy.r_ は最初のカンマ前に文字列で結合する axis を指定する機能があるので、他の hstack()、vstack()、c_ の3つのどれにもなれます。
86
86
 
87
87
 
88
88
 

3

d

2020/06/12 06:04

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
 
6
6
 
7
- * 2次元配列を渡した同士を結合したら、**結果として**、np.vstack と numpy.r_、numpy.hstack() と numpy.c_ が同じ結果になった
7
+ * 2次元配列同士を結合したら、**結果として**、np.vstack と numpy.r_、numpy.hstack() と numpy.c_ が同じになった
8
8
 
9
- * 1次元配列を渡した同士を結合したら、**結果として**、np.hstack と numpy.r_ が同じ結果になった
9
+ * 1次元配列同士を結合したら、**結果として**、np.hstack と numpy.r_ が同じになった
10
10
 
11
11
 
12
12
 

2

d

2020/06/12 06:01

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
 
26
26
 
27
- ## numpy.c_
27
+ ## numpy.hstack
28
28
 
29
29
 
30
30
 

1

s

2020/06/12 05:59

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -28,13 +28,13 @@
28
28
 
29
29
 
30
30
 
31
- * すべて1次元配列の場合は、`axis=0`方向に結合
31
+ * すべて1次元配列の場合は、`axis=0` 方向に結合
32
32
 
33
- * そうでない場合、`axis=1`方向で結合
33
+ * そうでない場合、`axis=1` 方向で結合
34
34
 
35
35
 
36
36
 
37
- なので、2つの1次元配列を渡した場合の挙動は1つの1次元配列に結合します。
37
+ なので、2つの1次元配列を渡した場合1つの1次元配列に結合した結果になります。
38
38
 
39
39
 
40
40
 
@@ -60,7 +60,7 @@
60
60
 
61
61
 
62
62
 
63
- なので、1次元配列を渡した場合の挙動は numpy.hstack() と同じです。
63
+ なので、numpy.hstack() と同じく axis=0 方向の結果なので同じ結果になります。
64
64
 
65
65
 
66
66
 
@@ -82,9 +82,7 @@
82
82
 
83
83
 
84
84
 
85
-
86
-
87
- とくに numpy.r_ は結合する axis を指定する機能があるので、他の3つのどれにもなれます。
85
+ とくに numpy.r_ は最初のカンマ前に文字列で結合する axis を指定する機能があるので、他の hstack、vstack、c_ の3つのどれにもなれます。
88
86
 
89
87
 
90
88