import numpy as np
a = np.array(
[[5, 10, 15, 20],
[25, 30, 35, 40]])
b = np.array(
[[5, 5, 5, 5],
[5, 5, 5, 5]])
c = a / b
print(c)
Num = np.array([])
d = np.append(Num, c)
print(d)
[1. 2. 3. 4. 5. 6. 7. 8.]
np.append() は第1引数のコピーに第2引数を追加して返す関数です。
記載していただいたコードでは返り値を捨てているので、Num や c を print しても値は変わりません。
また、append(a, b) で a と b の形状が異なる場合は両方とも flatten() されて1次元配列にしたうえ結合されます。
今回は Num は形状が (0,)、c は形状が (2, 4) なので、両方とも1次元配列にしたうえ結合される。
2次元配列同士を結合したい場合
np.append() のリファレンス を参考にしてください。
a = np.array(
[[5, 10, 15, 20],
[25, 30, 35, 40]])
b = np.array(
[[5, 5, 5, 5],
[5, 5, 5, 5]])
# numpy.append(arr, values, axis=None)[source]
# arr が追加先の配列、values が arr に追加する配列
# axis=0 方向に追加
dst = np.append(a, b, axis=0)
print(dst)
# [[ 5 10 15 20]
# [25 30 35 40]
# [ 5 5 5 5]
# [ 5 5 5 5]]
# axis=1 方向に追加
dst = np.append(a, b, axis=1)
print(dst)
# [[ 5 10 15 20 5 5 5 5]
# [25 30 35 40 5 5 5 5]]
空の配列にあとから追加していきたい場合
python
1import numpy as np
2
3a = np.array(
4 [[5, 10, 15, 20],
5 [25, 30, 35, 40]])
6
7# axis=0 方向に追加
8arr = np.empty((0, 4))
9for i in range(10):
10 arr = np.append(arr, a, axis=0)
11print(arr.shape) # (20, 4)
12
13# axis=1 方向に追加
14arr = np.empty((2, 0))
15for i in range(10):
16 arr = np.append(arr, a, axis=1)
17print(arr.shape) # (2, 40)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/21 11:03
2018/09/21 11:16
2018/09/21 12:46