Supposons que je fais deux recarrasses avec le même dttype et les empilez: bien que Je peux évidemment la transformer en recharge à nouveau, comme indiqué avec a code> et
b code> sont recarrays,
C code> n'est pas le cas: p>
d code> ci-dessus, mais c'est-à-dire incommode. Y a-t-il une raison pour laquelle l'empilement de deux recarrays ne produit pas un autre recharge? P> p>
3 Réponses :
Je ne sais pas. Très probablement, c'est un bug / fonctionnalité qui n'a jamais été mis en œuvre. Vous pouvez utiliser cette technique pour créer une fonction d'empilement plus intelligente p> ceci fonctionne Pour les recharps et les tableaux réguliers p> Je ne sais pas ce que vous planifiez, mais vous voudrez peut-être demander sur le Liste de diffusion numpy est une meilleure façon que d'utiliser la méthode documentée, mais à double sens, et quel est leur raisonnement pour ne pas faire l'emballage. p> p> numpy.hstack code> est essentiellement un wrapper autour d'une fonction dans
numpy.core.fromnumeric code>. Numérique est l'un des deux prédécesseurs de Numpy. La plupart des fonctions en numpopy ont une convention pour générer le même type que l'entrée en appelant la méthode
__ array_wrap __ code> de l'entrée sur la sortie et que la sortie résultante doit avoir les mêmes données, mais "emballé" dans la nouvelle classe. Peut-être que le concept d'emballage n'était pas en numérique, et que jamais a été ajouté à cette fonction.
Incidemment, vous pouvez également utiliser: ou p> (source: Ce message de liste de diffusion ) P> P>
Ils ne préservent pas le recouvrement non plus.
Alternativement, il existe des utilitaires d'assistance dans si on veut ajouter des colonnes supplémentaires à un (Bien que pas une réponse à la question, je pose la dernière exemple comme référence) P> p> numpy.lib.reccunctions Code>
que j'ai trébuché sur ici . Ce module a des fonctions pour la fusion et l'empilement recarrays code>:
recarray code>, cela peut être Fait en utilisant
fusion_arrays code>: p>
Pour Stack_arrays Code>: Si le type des colonnes empilées peut être différent, utilisez l'argument facultatif
autoconvert = true code>. Notez que
a code> (type =
aa code> (type =
autoconvert code> peut venir utile dans ces situations.