| この記事の要点 |
|---|
|
これはNumPyの要素の追加に関する記事です。
要素の追加はappend関数もしくはinsert関数を使用します。
どちらの関数も、戻り値として要素を追加した配列を返します。
つまり、関数の引数に指定した配列の要素には変化がありません。
具体的な例は下記を参照してください。
本記事では多次元配列への行や列の追加方法も記載します。
append関数とinsert関数の違い
append関数は配列の末尾に要素を追加します。
insert関数はインデックスを指定することで任意の箇所に要素を追加することが可能です。
append関数
| 構文 |
|---|
|
append(配列, 値) |
複数の値を追加する場合は第2引数をリストの形にします。
| 例 |
|---|
|
import numpy as np array1 = np.array( array2 = np.append(array1, ["D", "E"]) print(array1) |
| 出力結果 |
|---|
|
['A' 'B' 'C'] |
append関数の第1引数に指定されたarray1の値には変化がなく、
戻り値であるarray2が要素の追加された配列であることを確認できます。
insert関数
| 構文 |
|---|
|
insert(配列, インデックス, 値) |
複数の値を追加する場合は第3引数をリストの形にします。
| 例 |
|---|
|
import numpy as np array1 = np.array( array2 = np.insert(array1, 1, ["D", "E"]) print(array1) |
| 出力結果 |
|---|
|
['A' 'B' 'C'] |
insert関数の第1引数に指定されたarray1の値には変化がなく、
戻り値であるarray2が要素の追加された配列であることを確認できます。
また、第2引数にインデックスを指定することで任意の箇所に追加されていることが確認できます。
多次元配列への行の追加方法
| 構文 |
|---|
|
append(多次元配列, 値, axis=パラメーター) insert(多次元配列, インデックス, 値, axis=パラメーター) |
2次元配列ではaxis=0で行方向、axis=1で列方向に追加します。3次元以上のaxisも軸番号ですが、すべての次元を行・列と呼ぶ説明ではありません。
| 構文 |
|---|
|
import numpy as np array1 = np.array([ array2 = np.insert(array1, 1, [["E", "F"]], axis=0) print(array2) |
| 出力結果 |
|---|
|
[['A' 'B'] |
多次元配列への列の追加方法
次は2行2列の配列へ1列追加する実行例です。列の値は2行1列、shape=(2,1)として渡します。NumPy 2.4.4で元の1次元例・行追加例と合わせて実行し、出力と元配列が変わらないことを確認しました。
import numpy as np
array1 = np.array([['A', 'B'], ['C', 'D']])
column = np.array([['E'], ['F']])
appended = np.append(array1, column, axis=1)
inserted = np.insert(array1, [1], column, axis=1)
print(appended)
print(inserted)
print(array1)出力
[['A' 'B' 'E']
['C' 'D' 'F']]
[['A' 'E' 'B']
['C' 'F' 'D']]
[['A' 'B']
['C' 'D']]最初は末尾へ列を追加した結果、次は位置1へ挿入した結果、最後は変更されていない元の配列です。insertのインデックスは0始まりです。
appendのaxis省略と形状不一致に注意
np.append(array1, ["E", "F"])のようにaxisを省略すると、2次元の形は維持されず平坦化された1次元配列になります。列追加したいならaxis=1と値の形状を明示してください。同じ値でも[["E"], ["F"]]は2行1列、["E", "F"]は1次元です。
np.append(array1, ["E", "F"], axis=1)は今回の検証でValueErrorでした。axisを指定したappendは配列の次元数をそろえ、追加する軸以外のサイズを合わせます。エラーを隠すために無条件にflattenするのでなく、必要な結果のshapeから確認します。
insertの1と[1]は同じとは限らない
列追加例ではnp.insert(array1, [1], column, axis=1)と、インデックスを1要素のリストにしています。同じcolumnでも、スカラーの1を渡した場合はブロードキャストの扱いが違い、今回の入力では次の2列が挿入されました。
np.insert(array1, 1, column, axis=1)
# [['A' 'E' 'F' 'B']
# ['C' 'E' 'F' 'D']]1と[1]を無条件に置換せず、インデックスとvaluesの形状を組にして確認してください。上に残したaxis=0の元の行追加例は、その入力で正しく動作することを検証しています。
concatenateとの使い分けとdtype
複数の同じ次元数の配列をまとめて結合する場合は、次のconcatenateでも列方向へ結合できます。この入力でappendと同じ結果を確認しました。
combined = np.concatenate((array1, column), axis=1)appendはPythonのlist.appendと違い、元のndarrayをその場で伸ばす処理ではありません。戻り値を受け取らなければ追加結果を使えません。小さな配列を繰り返しappendするより、値をリストへ集めて最後にまとめて配列化・結合する方法も検討してください。
追加する値によってdtypeが変わることにも注意します。今回の検証ではint64配列へ空のリストをappendするとfloat64になりました。固定長文字列なども、操作と値による変換を実際のdtypeで確認します。
追加前後の確認リスト
- 元の配列とvaluesのshape・ndim・dtypeを確認する。
- どの軸へ、何行・何列を追加したいか決める。
- append/insertの戻り値を受け取り、結果と元の配列を別々に確認する。
- 空配列・形状不一致・複数位置・バージョン差を、自分の入力で確認する。
公式資料: numpy.append、numpy.insert(2026年10月確認)。検証はNumPy 2.4.4の掲載入力であり、全版・全形状の動作保証ではありません。
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38
- A non well formed numeric value encountered 2026-10-07 11:09:38