AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
Shihab Sikder
2023年6月21日
-
Python で
AttributeError: 'numpy.ndarray' オブジェクトに属性 'append' がありません
-
Python の
AttributeError: 'numpy.ndarray' object has no attribute '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