J'ai donc terminé une partie de ce devoir que je dois faire. Il n'y a qu'une seule partie de la mission qui n'a aucun sens pour moi.
Je suis en train de faire un modèle de régression linéaire et selon d'autres, je dois appliquer ans [i ,:] = y_poly
à la toute fin, mais je n'ai jamais eu de réponse pour savoir pourquoi.
Quelqu'un peut-il m'expliquer ce que signifie [i ,:]
? Je n'ai trouvé aucune explication en ligne.
3 Réponses :
C'est spécifique au module numpy
, utilisé dans la plupart des modules de science des données.
>>> import numpy >>> a = numpy.array([[0,0,0],[1,1,1]]) >>> a[0,:] = [3,4,5] >>> a array([[3, 4, 5], [1, 1, 1]])
il s'agit d'attribuer un vecteur à une tranche de tableau 2D numpy (attribution de tranche) . Exemple autonome:
ans[i,:] = y_poly
Il existe également une attribution de tranche en python de base, en utilisant une seule dimension ( a [:] = [1,2,3] )
Ok merci, ça aide, j'ai une boucle for qui dit: for i, degree in enumerate ([1,3,6,9]). Je comprends donc à quoi sert le découpage 2D.
Même si j'ai aussi réalisé que je peux obtenir les mêmes réponses sans la virgule (et [i:]).
a [0 ,:]
est différent de a [0:]
. Le second copie le vecteur dans toutes les lignes.
Je suppose que vous utilisez également numpy
pour manipuler des données (en tant que matrice)?
Si basé sur numpy
, ans [i ,:]
signifie sélectionner la ith
'ligne' de ans code> avec toutes ses «colonnes».
Notez que lorsque nous traitons des tableaux numpy, nous devrions (presque) toujours utiliser
[i, j]
au lieu de [i] [j]
. Cela peut être contre-intuitif si vous avez déjà utilisé Python ou Java pour manipuler la matrice.
Je pense que dans ce cas [] signifie que l'opérateur d'indexation d'un objet de classe peut être utilisé en définissant la méthode getitem
class A: values = [[1,2,3,4], [4,5,6,7]] def __getitem__(self, key): i, j = key if isinstance(i, int): i = slice(i, i + 1) if isinstance(j, int): j = slice(j, j + 1) for row in self.values[i]: print(row[j]) >>>a = A() >>>a[:,2:4] [3, 4] [6, 7] >>>a[1,1] [5] >>>a[:, 2] [3] [6]
La clé peut être littéralement n'importe quoi . Dans votre cas, la clé "[1 ,:]" est un tuple contenant "1" et une tranche (Aucun, Aucun, Aucun). Une telle clé peut être utile si votre classe représente des données multidimensionnelles auxquelles vous souhaitez accéder via l'opérateur []. Une suggestion d'autres réponses pourrait être un tableau numpy:
Voici un exemple rapide de la façon dont une telle indexation multidimensionnelle pourrait fonctionner:
class A: def __getitem__(self, key): pass
p >
notation de découpage numpy. Je n'ai pas trouvé de bon double. Si quelqu'un en trouve un, j'ai ajouté la balise "python" pour que vous puissiez dupehammer ...