teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

2018/09/21 11:17

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -56,7 +56,7 @@
56
56
  # [25 30 35 40 5 5 5 5]]
57
57
  ```
58
58
 
59
- ## 空で初期化した配列にあとから追加していきたい場合
59
+ ## 空配列にあとから追加していきたい場合
60
60
 
61
61
  ```python
62
62
  import numpy as np
@@ -64,7 +64,6 @@
64
64
  a = np.array(
65
65
  [[5, 10, 15, 20],
66
66
  [25, 30, 35, 40]])
67
- arr = []
68
67
 
69
68
  # axis=0 方向に追加
70
69
  arr = np.empty((0, 4))

2

追加

2018/09/21 11:17

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -24,4 +24,57 @@
24
24
 
25
25
  また、append(a, b) で a と b の形状が異なる場合は両方とも flatten() されて1次元配列にしたうえ結合されます。
26
26
 
27
- 今回は Num は形状が (0,)、c は形状が (2, 4) なので、両方とも1次元配列にしたうえ結合される。
27
+ 今回は Num は形状が (0,)、c は形状が (2, 4) なので、両方とも1次元配列にしたうえ結合される。
28
+
29
+ ## 2次元配列同士を結合したい場合
30
+
31
+ np.append() の[リファレンス](https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.append.html) を参考にしてください。
32
+
33
+ ```
34
+ a = np.array(
35
+ [[5, 10, 15, 20],
36
+ [25, 30, 35, 40]])
37
+ b = np.array(
38
+ [[5, 5, 5, 5],
39
+ [5, 5, 5, 5]])
40
+
41
+ # numpy.append(arr, values, axis=None)[source]
42
+ # arr が追加先の配列、values が arr に追加する配列
43
+
44
+ # axis=0 方向に追加
45
+ dst = np.append(a, b, axis=0)
46
+ print(dst)
47
+ # [[ 5 10 15 20]
48
+ # [25 30 35 40]
49
+ # [ 5 5 5 5]
50
+ # [ 5 5 5 5]]
51
+
52
+ # axis=1 方向に追加
53
+ dst = np.append(a, b, axis=1)
54
+ print(dst)
55
+ # [[ 5 10 15 20 5 5 5 5]
56
+ # [25 30 35 40 5 5 5 5]]
57
+ ```
58
+
59
+ ## 空で初期化した配列にあとから追加していきたい場合
60
+
61
+ ```python
62
+ import numpy as np
63
+
64
+ a = np.array(
65
+ [[5, 10, 15, 20],
66
+ [25, 30, 35, 40]])
67
+ arr = []
68
+
69
+ # axis=0 方向に追加
70
+ arr = np.empty((0, 4))
71
+ for i in range(10):
72
+ arr = np.append(arr, a, axis=0)
73
+ print(arr.shape) # (20, 4)
74
+
75
+ # axis=1 方向に追加
76
+ arr = np.empty((2, 0))
77
+ for i in range(10):
78
+ arr = np.append(arr, a, axis=1)
79
+ print(arr.shape) # (2, 40)
80
+ ```

1

tuiki

2018/09/21 11:16

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -15,5 +15,13 @@
15
15
  print(d)
16
16
  ```
17
17
 
18
+ ```
19
+ [1. 2. 3. 4. 5. 6. 7. 8.]
20
+ ```
21
+
18
22
  [np.append()](https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.append.html) は第1引数のコピーに第2引数を追加して返す関数です。
19
- 記載していただいたコードでは返り値を捨てているので、Num や c を print しても値は変わりません。
23
+ 記載していただいたコードでは返り値を捨てているので、Num や c を print しても値は変わりません。
24
+
25
+ また、append(a, b) で a と b の形状が異なる場合は両方とも flatten() されて1次元配列にしたうえ結合されます。
26
+
27
+ 今回は Num は形状が (0,)、c は形状が (2, 4) なので、両方とも1次元配列にしたうえ結合される。