Метод item
Метод item класса ndarray извлекает элемент из массива и возвращает его в виде скалярного значения Python. При вызове без аргументов метод возвращает первый элемент массива при условии, что массив содержит только один элемент. Если массив многомерный или содержит более одного элемента, необходимо передать индекс нужного элемента. Индекс может быть указан в виде одного числа для плоского представления массива или в виде кортежа индексов для многомерного доступа.
Синтаксис
arr.item()
arr.item(index)
arr.item(*indices)
Метод может вызываться тремя способами:
Без аргументов - возвращает первый элемент, если массив состоит из одного элемента, иначе выбрасывает исключение ValueError.
С одним целочисленным аргументом - возвращает элемент по плоскому индексу.
С несколькими целочисленными аргументами - возвращает элемент по многомерным индексам.
Пример
Давайте создадим одномерный массив и извлечём элемент по плоскому индексу:
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
res = arr.item(3)
print(res)
Результат выполнения кода:
40
Пример
Теперь извлечём элемент из двумерного массива, передав индексы по каждому измерению:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
res = arr.item(1, 2)
print(res)
Результат выполнения кода:
6
Пример
Получим первый и единственный элемент массива, вызвав метод без аргументов:
import numpy as np
arr = np.array([42])
res = arr.item()
print(res)
Результат выполнения кода:
42
Пример
Метод item также работает с отрицательными индексами:
import numpy as np
arr = np.array([100, 200, 300, 400, 500])
res = arr.item(-1)
print(res)
Результат выполнения кода:
500
Пример
Важно помнить, что метод item всегда возвращает скаляр Python, а не массив. Сравним поведение с обычной индексацией:
import numpy as np
arr = np.array([1.5, 2.7, 3.9])
scalar = arr.item(1)
array_elem = arr[1]
print(type(scalar))
print(type(array_elem))
Результат выполнения кода:
<class 'float'>
<class 'numpy.float64'>