1. ホーム
  2. python

AttributeErrorについて: 'numpy.ndarray' オブジェクトには 'index' という属性がありません。

2022-02-09 07:11:19

Pythonをしばらく使っていて、ndarrayとlistの見落とされた違いを発見しました。

まずは例題。
コード
numpyをnpとしてインポートする
配列 = [[0,0],[0,1],[0,2],[2,2],[3,3],[4,4]] のようになります。
インデックス=[1,2,3]である。
print("最初の配列:",配列)
array = np.delete(array,Indexs,0)
print("2番目の配列:",配列)
print(array.index([0,0]))を実行します。
<スパン 走行の結果
最初の配列です。[[0, 0], [0, 1], [0, 2], [2, 2], [3, 3], [4, 4]]
2番目の配列です。[[0 0]
 [3 3]
 [4 4]]
トレースバック (最新の呼び出し)。
  ファイル "C:³³³³³.py", ライン 10, in <module>
    print(array.index([0,0]))を実行します。
AttributeError: 'numpy.ndarray' オブジェクトには 'index' という属性がありません。
実行結果では、リスト配列と.ndarrayの表示も異なっていることがわかります。
エラー 'numpy.ndarray' オブジェクトには 'index' 属性がありません。これは、numpy.delete() がインデックス付きオブジェクトを削除した後に、リストではなく ndarray を返すので、要素の位置を探すのに index を使用できないからです。
解決策:ndarray.tolist()
numpyをnpとしてインポートする
配列 = [[0,0],[0,1],[0,2],[2,2],[3,3],[4,4]] のようになります。
インデックス=[1,2,3]です。
print("最初の配列:",配列)
array = np.delete(array,インデックス,0)
array = array.tolist()
print("2番目の配列:",配列)
print(array.index([4,4]))を実行します。
結果
最初の配列です。[[0, 0], [0, 1], [0, 2], [2, 2], [3, 3], [4, 4]]
2番目の配列です。[[0, 0], [3, 3], [4, 4]]
2
OK!!!