AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません

Shihab Sikder 2023年6月21日
  1. Python で AttributeError: 'numpy.ndarray' オブジェクトに属性 'append' がありません
  2. Python の AttributeError: 'numpy.ndarray' object has no attribute 'append' を修正する
AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません

リストや配列のように、NumPy には配列用の append() メソッドがありません。 代わりに、NumPy の append() メソッドを使用する必要があります。 append() メソッドを使用して、複数の NumPy 配列を追加できます。

Python で AttributeError: 'numpy.ndarray' オブジェクトに属性 'append' がありません

ndarray は n 次元の NumPy 配列で、モデルに複数のデータ型がある場合など、さまざまな目的に役立ちます。 これを使用した簡単な例を次に示します。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(f"Type: {type(arr)}")
print(f"Dimension: {arr.ndim}")
print(f"Shape: {arr.shape}")
print(f"Element data type: {arr.dtype}")

出力:

Type: <class 'numpy.ndarray'>
Dimension: 2
Shape: (2, 3)
Element data type: int32

それでは、上の ndarray オブジェクトに配列を追加してみましょう。 次のエラーが表示されます。

>>> arr.append([1,2])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'

したがって、ndarray 型オブジェクトには append() というメソッドが含まれていないことは明らかです。

Python の AttributeError: 'numpy.ndarray' object has no attribute 'append' を修正する

ndarray オブジェクトに新しい配列を追加するには、新しい配列が ndarray 内の前の配列と同じ次元であることを確認する必要があります。

ndarray を追加する方法は次のとおりです。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
arr = np.append(arr, [[7, 8, 9]], axis=0)
print(arr)

出力:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

ここで、気がつけば軸を0にしています。 ここで、軸について言及しなかった場合、次のようになります。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
arr = np.append(arr, [[7, 8, 9]])
print(arr)

出力:

[1 2 3 4 5 6 7 8 9]

すべての要素のラップを解除して、1つの配列にしました。

ここで、同じ次元を持たない配列を指定するとどうなるかを観察してみましょう。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
arr = np.append(arr, [[7, 8]], axis=0)

出力:

ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 3 and the array at index 1 has a size 2

ここで、次元の不一致の ValueError を取得しました。 NumPy の ndarray の詳細については、この ブログ を参照してください。

著者: Shihab Sikder
Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website

関連記事 - Python Error