IndexError: スカラー変数への無効なインデックス

Zeeshan Afridi 2023年6月21日
  1. PythonのIndexError:無効なインデックスからスカラー変数へのインデックスとは何ですか?
  2. Python の IndexError: 無効なインデックスからスカラー変数へのインデックス を修正する
  3. 2D Numpy 配列の IndexError: invalid index to scalar variable を修正
IndexError: スカラー変数への無効なインデックス

IndexError は、特に numpy 配列を初めて使用する場合によく見られます。 インデックスは、配列内の要素の位置です。

単純な配列であれば簡単ですが、次元が増えると配列も複雑になります。 配列の次元が増加すると、インデックスも増加します。

単純な配列がある場合、要素にアクセスするために 1つのインデックスが必要であり、2 次元配列では 2つのインデックスが必要であるとします。

1 次元配列と 2 次元配列の例:

One_D = [1, 2, 3, 4, 5]
print(One_D[0])  # --> 1

two_D = [[1, 2, 3], [4, 5, 6]]
print(two_D[1][0])  # --> 4

出力:

1
4

PythonのIndexError:無効なインデックスからスカラー変数へのインデックスとは何ですか?

numpy 配列のインデックスを誤用すると、Python の IndexError: 無効なインデックスからスカラー変数へのインデックス が発生します。 1 次元の arr があるとしましょう。

import numpy as npy

arr = npy.array([1, 2, 3, 4, 5])

print(arr[0][1])

出力:

IndexError: invalid index to scalar variable.

上記の例では、配列 arr は 1つのインデックスのみを必要としますが、存在しない 2つのインデックス [0][1] を持つ要素にアクセスしようとしています。 したがって、IndexError: 無効なインデックスからスカラー変数へのインデックスがスローされます。

Python の IndexError: 無効なインデックスからスカラー変数へのインデックス を修正する

IndexError を修正するのは簡単すぎます。 エラー自体は一目瞭然です。 問題はインデックスにあり、要素にアクセスするために無効なインデックスを提供していることを示しています。

配列の性質に応じて適切なインデックスを提供する必要があります。 上のプログラムの IndexError を直しましょう。

import numpy as npy

arr = npy.array([1, 2, 3, 4, 5])

print(arr[3])

出力:

4

2D Numpy 配列の IndexError: invalid index to scalar variable を修正

配列の働きを理解すれば、インデックスを理解するのに 2 次元は大した問題ではなく、問題ありません。

2-D numpy 配列の例を見てみましょう。

import numpy as npy

# creating a 2-D array
arr = npy.array([[1, 2, 3], [4, 5, 6]])

# with 2 rows and 3 columns
print(arr.shape)

# arr[2nd row] [3rd column]
print(arr[1][2])

# print(arr[1][2][3]) --> IndexError: invalid index to scalar variable.

出力:

(2, 3)
6

この例では、形状が (2,3) である 2 次元配列 arr があり、これは 2 行 3 列であることを意味し、コンピュータ プログラミング言語ではインデックスが 0 で始まり、 1 という意味です。

したがって、インデックス arr[1][2] は、配列 arr の 2 行 3 列目の要素 6 にアクセスすることを意味します。

また、arr 配列に 2つではなく 3つのインデックスのように、arr[1][2][3] のような無効なインデックスを指定すると、IndexError: 無効なインデックスからスカラー変数へのインデックス がスローされます。 arr 配列には存在しません。

著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - Python Error