Когда я создаю одномерный массив в numpy и использую строку (содержащую цифры) для ее индексации, я получаю ошибку, как ожидалось:
>>> 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.
Однако, когда я создаю двухмерный массив и использую две строки для индексирования, он не дает ошибки и возвращает элемент, как если бы строки сначала конвертировались в целые числа.
>>> 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
Что происходит? Почему бы мне не получить ошибку в двухмерном случае?