Paritition tableau en N morceaux avec Numpy
Il y a cette Comment vous répartissez vous une liste en morceaux de taille égale?
pour fractionner un tableau en morceaux. Est-il de toute façon à le faire plus efficacement pour le géant de tableaux à l'aide de Numpy?
- désolé, je suis toujours à la recherche d'une réponse efficace ;). droit maintenant, je pense ctypes est le seul moyen efficace.
- Définir efficace. Donner des exemples de données, votre méthode actuelle, comment il est rapide, et à quelle vitesse vous avez besoin qu'il soit.
Vous devez vous connecter pour publier un commentaire.
Essayer
numpy.array_split
.À partir de la documentation:
Identique à
numpy.split
, mais ne pas lever une exception si les groupes ne sont pas égaux en longueur.Si le nombre de morceaux > len(array), vous obtenez vide matrices imbriquées à l'intérieur, à l'adresse que - si votre split tableau est enregistré dans
a
, alors vous pouvez supprimer des tableaux vides par:Il suffit d'enregistrer dans la
a
si vous le souhaitez.np.array_split
copie du tableau d'entrée?Juste quelques exemples sur l'utilisation de
array_split
,split
,hsplit
etvsplit
:Quelques exemples sur l'utilisation de
array_split
:Si vous donner un tableau ou d'une liste comme deuxième argument en gros, vous donner des indices (avant) pour "couper" les
Un entier comme deuxième argument. spécifie le nombre de l'égalité des morceaux:
split
fonctionne de la même façon, mais lève une exception si une répartition égale n'est pas possibleEn plus de
array_split
vous pouvez utiliser des raccourcisvsplit
ethsplit
.vsplit
ethsplit
sont assez bien l'auto-explanatry:np.array_split(a, [1], axis=1)
exemple, savez-vous comment empêcher le premier tableau, d'avoir chaque élément imbriqué?Je crois que vous êtes à la recherche pour
numpy.split
ou éventuellementnumpy.array_split
si le nombre de sections n'a pas besoin de diviser la taille de la matrice correctement.Pas tout à fait une réponse, mais un long commentaire avec une belle mise en forme de code à l'autre (correcte) des réponses. Si vous essayez ce qui suit, vous verrez que ce que vous obtenez de la vue sur le tableau d'origine, pas de copies, et qui n'était pas le cas pour la accepté de répondre à la question que vous vous lien. Être conscient de la possibilité d'effets secondaires!
numpy.array_split
qui semble faire des copies des données. De passage à votre multitraitement piscine fera encore une autre copie des données...