Donc, j'essaie d'ajouter 2 tableaux np ensemble mais cela me donne cette erreur ValueError: tous les tableaux d'entrée doivent avoir le même nombre de dimensions, mais le tableau à l'index 0 a 2 dimension (s) et le le tableau à l'index 1 a 1 dimension (s) Je sais que cela signifie que la forme du tableau n'est pas la même mais je ne comprends pas pourquoi et comment le réparer.
arr1 = np.array([ [10.24217065 5.63381577] [ 2.71521988 -3.33068004] [-3.43022486 16.40921457] [ 1.4461307 12.59851726] [12.34829023 29.67531647] [16.65382971 9.8915765 ]]) arr2 = np.array([4.62643996 5.14587112]) arr3 = np.append(arr1,arr2,axis=0)
4 Réponses :
Donnez-leur simplement la même dimension:
arr3 = np.append(arr1, [arr2], axis=0)
arr2 n'a qu'une seule dimension, puisque sa forme est (2,) . arr1 par contre a deux dimensions, puisque sa forme est (6, 2) . Celles-ci ne sont pas compatibles pour np.append , comme il est dit.
Vous pouvez faire en sorte que arr2 ait le nombre de dimensions requis de plusieurs manières. L'un d'eux est le remodelage:
arr3 = np.append(arr1, arr2.reshape(1, 2), axis=0)
À ce stade, les tableaux ont la forme (6, 2) et (1, 2) , que np.append sait gérer. La sortie aura la forme (7, 2) .
Le message d'erreur vous indique exactement quel est le problème. Le premier tableau a deux dimensions et le second tableau a une dimension. Une autre paire de [] dans le deuxième tableau fera le travail.
arr2 = np.array([[4.62643996 5.14587112]])
arr3 = np.append(arr1, arr2[np.newaxis, :])
np.vstack ((arr1, arr2))Il devrait être évident pour vous que
arr1est 2d avec forme (6,2), etarr2est 1d avec forme (2,). Sinon, vous devez lire quelques notions de base surnumpy.np.appendavec le paramètreaxisutilise simplementnp.concatenate ([arg1, args2], axis = 0). Concaténer est pointilleux quant au nombre de dimensions et à la correction des formes. Je vous recommande de rester à l'écart denp.appendet d'en apprendre suffisamment sur les dimensions pour utiliser correctementnp.concatenate.