Я не могу использовать функцию numpy.zeros ‘Ошибка типа: объект ‘списка’ не вызывается’

#python #list #numpy #typeerror #numpy-ndarray

#python #Список #numpy #ошибка типа #numpy-ndarray

Вопрос:

Я не могу использовать функцию NumPy.zeros, я впервые сталкиваюсь с этой проблемой, и я не знаю, что я делаю не так, я проверил другие вопросы по той же проблеме, но, похоже, эти люди случайно назначили функцию встроенной функции ‘list’, которая непохоже, это проблема, с которой я сталкиваюсь:

 import numpy as np

X = np.array([[4,5,9,6], [9,1,5,7], [1,5,7,3], [6, 9, 5, 2], [9,8,2,5]])
N, D = X.shape
  

Теперь я пытаюсь создать нулевой вектор с таким количеством строк, как D:

 np.zeros((D,))
  

и я получаю это сообщение об ошибке:

 ---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-ffee5417280b> in <module>
----> 1 np.zeros((D,1))

TypeError: 'list' object is not callable
  

Что именно не так с моим кодом?

Комментарии:

1. Вы должны сделать np.array((D,1)) то, что отличается от вашего фрагмента кода, но соответствует вашему результату трассировки. Я попытался выполнить весь предоставленный вами код, никаких проблем не возникло. Можете ли вы предоставить фактический код, который вы пытаетесь запустить?

2. Подтверждение не может быть воспроизведено с моей стороны.

3. Ищите что-то, что говорит np.zeros = [...] или fn( . . ., out = np.zeros) где-то в вашем коде, похоже, что функция где-то перезаписана.

4. В принципе, выполните поиск в вашем коде, за np.zeros которым не следует a ( . Или, если вы находитесь в IDE, print(np.zeros) и убедитесь, что это все еще функция

5. Не удаляйте, это все еще распространенная проблема. Однако я закрою замечание, поскольку это скорее проблема с опечаткой (хотя и удручающе распространенная).

Ответ №1:

Я запускаю ваш код на python 3.7, это правильно.

 import numpy as np

X = np.array([[4,5,9,6], [9,1,5,7], [1,5,7,3], [6, 9, 5, 2], [9,8,2,5]])
N, D = X.shape
print(np.zeros((D,)))
  

вывод:

 [0. 0. 0. 0.]
  

проверьте пробелы в вашем коде.