Numpy dot função shape

Olá pessoal, tenho uma matriz e estou tentado transformá-la em array porém só consigo fazer isso fora de uma função quando coloco o código na função aparece o erro abaixo.

(m,n) = np.shape(X) # ou  X.shape

ValueError: not enough values to unpack (expected 2, got 0)

Código fora da função

import numpy as np 

X = [[0,0], 
     [0,1],
     [1,0],
     [1,1]]
     
X = np.asarray(X)

(m,n) = np.shape(X)

print(m)
print(n)

Código na função (Esse funciona)

import numpy as np 

class Trainer():
    
    def _init_(self):
        pass
    
    def train(X,y,l=1):
        
        y = np.asarray(y)
        X = np.asarray(X)
        (m,n) = np.shape(X) # X.shape
    
        print(m)
        print(n)


y = [-1,1,1,1] #target para OU LOGICO

X = [[0,0],[0,1],[1,0],[1,1]]

tr = Trainer()
tr.train(X,y)

Já verifiquei a identação e tudo mais, não faço ideia de onde o erro está.

seu erro é esquecer que todos os metodos em Python recebem como primeiro argumento o self, ou seja, o ponteiro para a instancia corrente.

se vc declarar train(self,X,y,l=1)

vai funcionar

1 curtida

Obrigada peczenyj ! Funcionou!