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 ...