回答編集履歴

3

2018/09/21 11:17

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
 
116
116
 
117
- ## 空で初期化した配列にあとから追加していきたい場合
117
+ ## 空配列にあとから追加していきたい場合
118
118
 
119
119
 
120
120
 
@@ -129,8 +129,6 @@
129
129
  [[5, 10, 15, 20],
130
130
 
131
131
  [25, 30, 35, 40]])
132
-
133
- arr = []
134
132
 
135
133
 
136
134
 

2

追加

2018/09/21 11:17

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -51,3 +51,109 @@
51
51
 
52
52
 
53
53
  今回は Num は形状が (0,)、c は形状が (2, 4) なので、両方とも1次元配列にしたうえ結合される。
54
+
55
+
56
+
57
+ ## 2次元配列同士を結合したい場合
58
+
59
+
60
+
61
+ np.append() の[リファレンス](https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.append.html) を参考にしてください。
62
+
63
+
64
+
65
+ ```
66
+
67
+ a = np.array(
68
+
69
+ [[5, 10, 15, 20],
70
+
71
+ [25, 30, 35, 40]])
72
+
73
+ b = np.array(
74
+
75
+ [[5, 5, 5, 5],
76
+
77
+ [5, 5, 5, 5]])
78
+
79
+
80
+
81
+ # numpy.append(arr, values, axis=None)[source]
82
+
83
+ # arr が追加先の配列、values が arr に追加する配列
84
+
85
+
86
+
87
+ # axis=0 方向に追加
88
+
89
+ dst = np.append(a, b, axis=0)
90
+
91
+ print(dst)
92
+
93
+ # [[ 5 10 15 20]
94
+
95
+ # [25 30 35 40]
96
+
97
+ # [ 5 5 5 5]
98
+
99
+ # [ 5 5 5 5]]
100
+
101
+
102
+
103
+ # axis=1 方向に追加
104
+
105
+ dst = np.append(a, b, axis=1)
106
+
107
+ print(dst)
108
+
109
+ # [[ 5 10 15 20 5 5 5 5]
110
+
111
+ # [25 30 35 40 5 5 5 5]]
112
+
113
+ ```
114
+
115
+
116
+
117
+ ## 空で初期化した配列にあとから追加していきたい場合
118
+
119
+
120
+
121
+ ```python
122
+
123
+ import numpy as np
124
+
125
+
126
+
127
+ a = np.array(
128
+
129
+ [[5, 10, 15, 20],
130
+
131
+ [25, 30, 35, 40]])
132
+
133
+ arr = []
134
+
135
+
136
+
137
+ # axis=0 方向に追加
138
+
139
+ arr = np.empty((0, 4))
140
+
141
+ for i in range(10):
142
+
143
+ arr = np.append(arr, a, axis=0)
144
+
145
+ print(arr.shape) # (20, 4)
146
+
147
+
148
+
149
+ # axis=1 方向に追加
150
+
151
+ arr = np.empty((2, 0))
152
+
153
+ for i in range(10):
154
+
155
+ arr = np.append(arr, a, axis=1)
156
+
157
+ print(arr.shape) # (2, 40)
158
+
159
+ ```

1

tuiki

2018/09/21 11:16

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -32,6 +32,22 @@
32
32
 
33
33
 
34
34
 
35
+ ```
36
+
37
+ [1. 2. 3. 4. 5. 6. 7. 8.]
38
+
39
+ ```
40
+
41
+
42
+
35
43
  [np.append()](https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.append.html) は第1引数のコピーに第2引数を追加して返す関数です。
36
44
 
37
45
  記載していただいたコードでは返り値を捨てているので、Num や c を print しても値は変わりません。
46
+
47
+
48
+
49
+ また、append(a, b) で a と b の形状が異なる場合は両方とも flatten() されて1次元配列にしたうえ結合されます。
50
+
51
+
52
+
53
+ 今回は Num は形状が (0,)、c は形状が (2, 4) なので、両方とも1次元配列にしたうえ結合される。