numpy で 1 次元配列を作成し、文字列 (数字を含む) を使用してインデックスを作成すると、予想どおりエラーが発生します。
>>> import numpy as np
>>> a = np.arange(15)
>>> a['10']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: field named 10 not found.
ただし、2 次元配列を作成し、インデックスに 2 つの文字列を使用すると、エラーは発生せず、文字列が最初に整数に変換されたかのように要素を返します。
>>> b = np.arange(15).reshape(3,5)
>>> b
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> b[1, 2]
7
>>> b['1', '2']
7
どうしたの?2 次元の場合にエラーが発生しないのはなぜですか?