Слишком много позиционных аргументов для вызова метода с numpy - PullRequest
0 голосов
/ 18 июня 2020

Я получаю сообщение об ошибке Too many positional arguments for method call для строки x_train = np.array(x_train).reshape(-1, SIZE, SIZE, 1). Есть идеи, как это исправить?

python3==3.8.3

pylint==2.5.3

astroid==2.5.3

numpy==1.18.5

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Метод ndarray.reshape принимает только два позиционных аргумента:

https://numpy.org/doc/stable/reference/generated/numpy.ndarray.reshape.html#numpy .ndarray.reshape

0 голосов
/ 18 июня 2020

В методе numpy допускается любое количество позиций. Это форма функции, которая требует кортежа.

In [20]: np.arange(24).reshape(2,3,4)                                           
Out[20]: 
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
In [21]: np.reshape(np.arange(24),(2,3,4))                                      
Out[21]: 
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

Или что-то более близкое к вашему выражению

In [25]: np.array(np.ones((3,4),int)).reshape(-1,2,2,1).shape                   
Out[25]: (3, 2, 2, 1)

Это заставляет меня задаться вопросом о природе вашего объекта x_train. Полное сообщение об ошибке с трассировкой также может помочь.


Действительно ли это ошибка Python / numpy, предупреждение pylint или astroid?

...