ndarray – 要素・行・列の挿入・追加

1次元配列

要素の挿入

ndarrayの1次元配列への要素の挿入にはnumpy.insert()関数を使う。第1引数に対象となる配列、第2引数に挿入位置、第3引数に挿入する値を指定。

指定された位置に値が挿入され、それ以降の要素は一つずつ後ろにずれる。

要素の追加

配列の最後に要素を追加するには、以下の方法がある。

  • numpy.append()
  • numpy.insert()
  • numpy.hstack()

numpy.append()

第1引数に配列、第2に引数に追加する要素を指定。メソッドではなく、モジュール関数。1次元配列に1次元配列を追加すると、単に要素が追加される。

numpy.insert()

挿入位置として最後の要素の次の位置を指定する。この値は配列のサイズと等しい。

numpy.hstack()

注意点として、引数として指定するのはタプルで、そのタプルの要素をつなげた結果が返される点で、追加される要素を配列としなければならない。

2次元配列

numpy.insert()で単純に位置指定だけすると、1次元配列として扱われてしまう。

行の挿入・追加

1次元配列を行として挿入するには、numpy.insert()で第4引数にaxis=0を指定する。

配列の最後に行を追加するには、numpy.insert()で最終行の次の位置=行数を指定する。

shapeプロパティーで各次元のサイズの配列が得られるので、行数として第0要素の値を使う。

numpy.vstack()を使ってもよい。vstack()は複数の配列を縦方向につなげていく関数で、つなげる関数群を要素とするタプルを引数とする点に注意。

列の挿入・追加

numpy.insert()で列を挿入する場合、axis=1を指定する。列の追加の場合でも、追加する配列は行形式の1次元配列で指定。

numpy.insert()で配列に列を追加する場合、指定位置はshapeの第1要素の値。

numpy.hstack()を使ってもよい。hstack()の注意点は以下の通り。

  • 引数をタプルとすること
  • 追加する配列は列形式とする必要があり、1次元の配列を列形式に変換すること

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です