Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python AttributeError:「numpy.ndarray」オブジェクトに属性「append」がありませんソリューション

通常のPythonでは、append()を使用できます リストの最後にアイテムを追加するメソッド。 NumPyではこのメソッドを使用できません。 Pythonを使用しようとした場合append() NumPy配列の最後にアイテムを追加するメソッドでは、AttributeError: ‘numpy.ndarray’ object has no attribute ‘append’がありません。 エラー。

このガイドでは、このNumPyエラーの原因と解決策について詳しく説明します。このエラーを修正する方法を説明するために、例を参照します。始めましょう。

AttributeError:「numpy.ndarray」オブジェクトには属性「append」がありません

AttributeError: ‘numpy.ndarray’ object has no attribute ‘append’ append()を使用するとエラーが発生します NumPy配列にアイテムを追加するメソッド。代わりに、numpy.append()を使用する必要があります リストにアイテムを追加する場合のメソッド。

numpy.append() メソッドは、NumPyライブラリ用に特別に作成されました。 NumPy配列は通常のPython配列とは異なるため、NumPyが配列にアイテムを追加する独自のメソッドを持っていることは合理的です。

NumPy append() メソッドは次の構文を使用します。

numpy.append(list_to_add_item, item_to_add)

ここで焦点を当てる2つのパラメーターは次のとおりです。

  • list_to_add_item:アイテムを追加するリスト。
  • item_to_add:指定したリストに追加するアイテム。

numpy.append() メソッドは、「list_to_add_item」配列に基づいて、最後に指定されたアイテムを含む新しい配列を返します。 append()を配置しないことに注意してください 通常のPythonの場合と同様に、アイテムを追加するリストの後に。

このエラーの例を見てみましょう。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

状況の例

工場での品質保証後に製品が受けた性能等級を追跡するアプリケーションを構築しています。製品は50のスケールでスコア付けされ、すべての製品は、世界に出て行くために少なくとも40のスコアを達成する必要があります。

製品が最終日に受け取ったスコアを格納する配列に新しいスコアを追加するアプリケーションの一部を構築しています。このプログラムをビルドするには、append()を使用できます。 方法:

import numpy as np

scores = np.array([49, 48, 49, 47, 42, 48, 46, 50])
to_add = 49

scores.append(to_add)

print(scores)

私たちのプログラムは、スコアのリストにスコア39を追加します。実際の状況では、これらのスコアをファイルから読み取る場合がありますが、例を単純にするために、プログラムで配列を宣言しました。新しいスコアがスコアの配列に追加された後、コードはすべてのスコアのリストをPythonコンソールに出力します。

コードを実行して、何が起こるか見てみましょう。

Traceback (most recent call last):
  File "test.py", line 6, in <module>
	scores.append(to_add)
AttributeError: 'numpy.ndarray' object has no attribute 'append'

コードはエラーを返します。

ソリューション

通常のPythonappend()を使用しようとしています カスタムビルドのnumpy.append()の代わりに、NumPy配列にアイテムを追加するメソッド 方法。

このエラーを解決するには、numpy.append()の構文を使用する必要があります 方法:

import numpy as np

scores = np.array([49, 48, 49, 47, 42, 48, 46, 50])

scores = np.append(scores, 49)

print(scores)

NumPyライブラリを指すためにnp用語を使用します。これは、インポートステートメントでnumpyライブラリをnpとして定義したために機能します。アイテムを追加するリストを最初の引数として渡します。配列に追加する新しいスコアは、2番目の引数です。

np.append()の結果を割り当てる必要があります 新しい値への操作。これは、np.append()が原因です。 既存のアレイを変更しません。代わりに、このメソッドは、新しい値が追加された新しい配列を作成します。

プログラムを実行して、何が起こるか見てみましょう:

[49 48 49 47 42 48 46 50 49]

番号49がリストの最後に正常に追加されました。

結論

AttributeError: ‘numpy.ndarray’ object has no attribute ‘append’ エラーは、通常のPython append()を使用していることを示します NumPy配列にアイテムを追加するメソッド。代わりに、numpy.append()を使用する必要があります メソッド。構文はnumpy.append(list、item_to_add)を使用します。このメソッドは、指定された項目が最後に追加された新しいリストを作成します。

NumPyでのコーディングについてもっと知りたいですか? NumPyの学習方法ガイドをご覧ください。このガイドには、初心者および中級の開発者に適した学習リソースのリストとともに、NumPyの知識を構築するためのヒントが含まれています。


  1. オブジェクトがPythonで属性を持っているかどうかを知る方法は?

    hasattr()関数を使用して、Pythonオブジェクトobjに特定の属性またはプロパティがあるかどうかを確認できます。 hasattr(obj、属性): Pythonの規則では、プロパティが存在する可能性が高い場合は、それを呼び出して、try/exceptブロックでキャッチします。プロパティが存在しない可能性が高い場合、または不明な場合は、hasattrを使用することをお勧めします。 次のコードは、クラスfooに属性aがあるかどうかを確認する方法を示しています。 例 class foo:     a = 54     def bar(self)

  2. PythonのTimeTupleとは何ですか?

    datetime.dateインスタンスのtimetuple()メソッドは、time.struct_time型のオブジェクトを返します。 struct_timeは名前付きタプルオブジェクトです(名前付きタプルオブジェクトには、インデックスまたは名前でアクセスできる属性があります)。 struct_timeオブジェクトには、日付フィールドと時刻フィールドの両方を表す属性と、夏時間がアクティブかどうかを示すフラグがあります。 timetuple()関数によって返される名前付きタプルでは、​​日付オブジェクトに従って年、月、日のフィールドが設定され、時間、分、秒に対応するフィールドはゼロに設定され