pythonの配列の結合について勉強中です
下記のページを見ているのですが
配列の結合
np.r_['-1,2,0', index expression]の'-1,2,0'について教えていただきたいです
-1がaxis=-1で一番最後の軸方向に結合するという意味なのはわかるのですが
残り二つの数字がわかりません
具体例も交えて教えていただけると嬉しいです
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
numpy.r_['a,b,c', array1, array2, ..., arrayn] とした場合、文字列の各数値は以下を意味します。
- 'a': 結合する軸を指定する。
- 'b': 次元数が b 未満の場合、結合前にサイズ1の次元を挿入して、次元数を b にする。(デフォルトは0)
- 'c': 次元数が b 未満の場合、元の配列 axis=0 が axis=c の位置にくるようサイズ1の次元を挿入する。(デフォルトは0、つまり axis=-1 に次元を挿入する。)
具体的な例は下記を参照ください。
追記
この文も読んだのですが'b' 'c'のところの意味がわかりませんでした。
python
1x = np.array([1, 2]) 2y = np.array([[5, 6], 3 [8, 9]]) 4 5z = np.r_['1,2,0', x, y] 6print(z) 7# [[1 5 6] 8# [2 8 9]]
x は1次元配列、y は2次元配列です。
python
1x = np.array([1, 2]) 2y = np.array([[5, 6], 3 [8, 9]]) 4 5# x, y の次元 6print(x.ndim) # 1次元配列 7print(y.ndim) # 2次元配列 8 9# x, y の形状 10print(x.shape) # 形状 (2,) 11print(y.shape) # 形状 (2, 2)
b=2 が指定されているので、2次元未満の配列 x は結合前にサイズ1の次元を挿入して2次元配列にします。
この際にどの位置に挿入するかですが、axis=0 が axis=c の位置にくるよう挿入します。
今回の場合、c=0 なので、後ろに挿入することになり、(2, 1) となります。
python
1x = np.array([[1], [2]]) # 形状が (2, 1) 2y = np.array([[5, 6], 3 [8, 9]])
最後に (2, 1) と (2, 2) の2次元配列を axis=a の方向で結合します。
今回は a=1 なので、横方向に結合されます。
追記
c の役割は簡単にいうと、次元数が b 未満の場合、どこに位置を挿入するかを制御します。
投稿2019/09/01 06:52
編集2019/09/01 14:34総合スコア21956
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/01 07:05
2019/09/01 11:39 編集
2019/09/01 14:05
2019/09/01 14:32 編集
2019/09/01 14:36
2019/09/01 14:38
2019/09/01 14:39
2019/09/01 14:43
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。