1. ホーム
  2. python

Pythonのnumpy.append()

2022-02-20 14:57:29

Python numpy append() 関数は、2 つの配列を結合するために使用されます。この関数は新しい配列を返し、元の配列は変更されません。

Python numpy append() 関数は、2 つの配列を結合するために使用されます。この関数は、元の配列を変更せずに新しい配列を返します。

NumPy append() のシンタックス ( NumPy append() のシンタックス )

関数の構文は以下の通りです。

関数の構文は以下の通りです。

numpy.append(arr, values, axis=None)

  • アール は、配列のようなオブジェクトか、NumPy の配列です。値は、この配列のコピーに追加されます。

    アール は、配列のようなオブジェクトか、NumPyの配列です。値は、この配列のコピーに追加されます。
  • は配列のようなオブジェクトで、"arr" 要素の末尾に付加されます。

    これらの は配列のようなオブジェクトで、"arr" 要素の末尾に追加されます。
  • は、値が追加される軸を指定します。軸を指定しない場合、配列は両方とも平坦化される。

    は追加される軸を指定します。軸が指定されない場合、2つの配列は拡散されます。

Python numpy.append()の例 ( Python numpy.append()の例 )

NumPy の append() 関数の例をいくつか見てみましょう。

NumPy の append() 関数の例をいくつか見てみましょう。

1. 2つの配列の展開 ( <スパン 1. 2つの配列を平坦化する )

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[10, 20], [30, 40]])

# no axis provided, array elements will be flattened
arr_flat = np.append(arr1, arr2)

print(arr_flat) # [ 1 2 3 4 10 20 30 40]

2. 軸に沿ってマージする ( <スパン 2. 軸に沿ったマージ )

import numpy as np

arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=0)
print(f'Merged 2x2 Arrays along Axis-0:\n{arr_merged}')

arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=1)
print(f'Merged 2x2 Arrays along Axis-1:\n{arr_merged}')

出力します。

出力します。

Merged 2x2 Arrays along Axis-0:
[[ 1 2]
 [ 3 4]
 [[10 20]]
 [30 40]]
Merged 2x2 Arrays along Axis-1:
[[ 1 2 10 20]]
 [ 3 4 30 40]]

  • 2×2の配列をX軸方向に結合すると、出力配列のサイズは4×2になります。

    2×2アレイをX軸方向に合成した場合、出力アレイサイズは4×2となります。
  • 2×2アレイをY軸方向に合成した場合、出力アレイサイズは2×4となります。

    2×2アレイをY軸方向に合成した場合、出力アレイサイズは2×4となります。

3. 異なる形状のアレイをマージする ( <スパン 3. 異なる形状の配列のマージ )

append() 関数は、軸を除く両方の配列が異なる形状である場合、ValueError をスローします。

append() 関数は、軸を除く配列の両方が異なる形状である場合、ValueError をスローします。

このシナリオを簡単な例で理解しましょう。

このシナリオを簡単な例で理解しましょう。

arr3 = np.append([[1, 2]], [[1, 2, 3], [1, 2, 3]])
print(arr3)

arr3 = np.append([[1, 2]], [[1, 2], [3, 4]], axis=0)
print(arr3)

  • 最初の例では、配列の要素は平坦化されています。そのため、1×2と2×3というまったく異なるサイズの配列であっても、append()は問題なく動作します。

    最初の例では、配列の要素は平坦化されています。そのため、1×2と2×3という全く異なるサイズであっても、append()は問題なく動作します。
  • 2番目の例では、配列の形状が1×2と2×2になっています。0軸にそって追加しているので、0軸の形状は異なっていてもかまいません。他の形状は同じであるべきなので、このappend()も問題なく動作します。

    2つ目の例では、配列の形状が1×2と2×2になっています。0軸に沿って追加しているので、0軸の形状は異なっていてもかまいません。他の形状は同じであるべきなので、このappend()も問題なく動作します。

出力します。

出力します。

[1 2 1 2 3 1 2 3]

[[1 2]
 [1 2]
 [3 4]]

ValueErrorが発生する別の例を見てみましょう。

ValueErrorが発生する別の例を見てみましょう。

>>> import numpy as np
>>> 
>>> arr3 = np.append([[1, 2]], [[1, 2, 3]], axis=0)
Traceback (most recent call last):
  File "", line 1, in 
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numpy/lib/function_base.py", line 4528, in append
    return concatenate((arr, values), axis=axis)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
>>>


<イグ

Python numpy append() ValueError

Python numpy append() ValueError (日本語)

配列の形状は1×2、2×3です。軸-1の形状が異なるため、ValueErrorが発生する。

配列の形状は1×2、2×3です。軸-1 の形状が異なるため、ValueError が発生します。

参考 : APIドキュメント

参考文献

APIドキュメント

<ブロッククオート

から翻訳された。 https://www.journaldev.com/32780/numpy-append-in-python