Как исправить в Python: объект 'numpy.ndarray' не вызывается


Одна распространенная ошибка, с которой вы можете столкнуться при использовании NumPy в Python:

TypeError : 'numpy.ndarray' object is not callable

Эта ошибка обычно возникает, когда вы пытаетесь вызвать массив NumPy как функцию, используя круглые скобки () вместо квадратных скобок [ ] .

В следующем примере показано, как использовать этот синтаксис на практике.

Как воспроизвести ошибку

Предположим, у нас есть следующий массив NumPy:

import numpy as np

#create NumPy array
x = np.array([2, 4, 4, 5, 9, 12, 14, 17, 18, 20, 22, 25])

Теперь предположим, что мы пытаемся получить доступ к первому элементу массива:

#attempt to access the first element in the array
x(0)

TypeError : 'numpy.ndarray' object is not callable

Поскольку мы использовали круглые () скобки, Python думает, что мы пытаемся вызвать массив NumPy x как функцию.

Поскольку x не является функцией, мы получаем ошибку.

Как исправить ошибку

Способ устранения этой ошибки — просто использовать квадратные [] скобки при доступе к элементам массива NumPy вместо круглых () скобок:

#access the first element in the array
x[0]

2

Показан первый элемент в массиве (2), и мы не получаем никакой ошибки, потому что мы использовали квадратные скобки [ ] .

Также обратите внимание, что мы можем получить доступ к нескольким элементам массива одновременно, если используем квадратные скобки [] :

#find sum of first three elements in array
x[0] + x[1] + x[2]

10

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить: ValueError: Индекс содержит повторяющиеся записи, не может изменить форму
Как исправить: ошибка типа: ожидаемая строка или байтовый объект
Как исправить: TypeError: объект 'numpy.float64' не вызывается

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.