tout d'abord, s'excuser pour le titre peu énigmatique à ma question. Laissez-moi essayer d'expliquer mon besoin: - Je lis deux fonctionnalités à savoir X1, X2 à partir d'un fichier CSV. J'ai un jeu de données d'apprentissage dans un fichier csv contenant 1000 enregistrements avec chaque ligne correspondant à la valeur de X1, X2. Pour que mon ensemble d'apprentissage corresponde mieux à mon code d'apprentissage automatique, je veux faire un mappage d'entités qui prend X1, X2 et crée des termes polynomiaux à la puissance de 4. par exemple si X1 = a, X2 = b, je veux ajouter les plus récents comportent un^2, un * b, b^2, un^3, un^2 * b, un * b^2, un^4 ... et ainsi de suite. Maintenant, si je les lis comme une matrice numpy, je veux voir les données comme ceci:ajouter des colonnes à une matrice numpy basée sur le degré de polynôme
[ [ 1 a b a^2 a*b, b^2 a^3 a^2*b......]
[.... ............ ............ ]
[ ..
..] ]
Notez que le nombre de lignes sont fixes, mais le nombre de colonnes sont déterminées par le degré sélectionné. En outre trois premières colonnes doivent être
[[1 a b ..]
[1 c d ..]
..
..]
Le pseudo-code Je pense est la suivante: -
def poly(X): # where X is a numpy matrix with X1, X2 columns,
degree = 4;
r= X.shape[0]
c=1 # number of columns
val_matrix= np.ones(shape=(r,c)) # creating a (r,1) matrix init with 1s
# *start of psuedo code*
while i<=degree:
while j <=i:
val_matrix[:, c+1] = (X1.^(i-j)).*(X2.^j)
Je ne sais pas comment obtenir ce travail en python ?. apprécierait une suggestion. Notez que^fait référence à la puissance de.
merci Paul. cela expose ma faiblesse en numpy. laissez-moi essayer cela et revenir à vous. j'apprécie. – sunny
merci, ça a marché. vous m'avez également exposé à np.mgrid.that est utile. – sunny