Numpyのndarray同士の結合方向について

公開日:2018-11-13
最終更新:2018-11-13
※この記事は外部サイト(https://qiita.com/hrs1985/items/e9c14b186e...)からのクロス投稿です

Numpyというpythonの数値計算ライブラリを最近よく使っています。 ndarrayというN次元配列型が定義されていて便利です。 さて、複数の配列を結合させたい場合、Numpyには以下のようなメソッドが用意されています。 numpy.r- : 行方向への結合 numpy.c_ : 列方向への結合

import numpy as np
a = np.ones((2, 3)) # 2×3で要素が全て1の行列
b = np.zeros((2, 3)) # 2×3で要素が全て0の行列
c = np.r_[a, b]
d = np.c_[a, b]
print(c)
print(d)

>[[ 1.  1.  1.]
 [ 1.  1.  1.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]
>[[ 1.  1.  1.  0.  0.  0.]
 [ 1.  1.  1.  0.  0.  0.]]

結合したいndarrayを[]で囲んでメソッドを使うと、 こんな感じでそれぞれの方向に行列を結合してくれます 参考: Numpyで行列の連結 これを使うと、2つのN×M配列から2N×MとN×2Mの2次元配列を作ることができます。

ではN×M×2のような3次元配列は作れないのかという話になるのですが、 見た限りそれ用のメソッドは用意されてないっぽいです。 以下のように配列生成関数numpy.array()にndarrayを要素に持つタプルを与えることで実現はできます。

e = np.array((a, b))
print(e)

>[[[ 1.  1.  1.]
  [ 1.  1.  1.]]

 [[ 0.  0.  0.]
  [ 0.  0.  0.]]]
記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@kiyoの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする