Quel est le moyen le plus propre d'ajouter un champ à un tableau numpy structuré? Peut-il être fait de manière destructive, ou est-il nécessaire de créer un nouveau tableau et de copier sur les champs existants? Le contenu de chaque champ est-il stocké de manière contiguë dans la mémoire afin que cette copie puisse être effectuée efficacement?Ajout d'un champ à un tableau numpy structuré
20
A
Répondre
19
Si vous utilisez numpy 1.3, il existe également numpy.lib.recfunctions.append_fields().
Pour de nombreuses installations, vous aurez besoin de import numpy.lib.recfunctions
pour y accéder. import numpy
ne permettra pas de voir le numpy.lib.recfunctions
6
import numpy
def add_field(a, descr):
"""Return a new array that is like "a", but has additional fields.
Arguments:
a -- a structured numpy array
descr -- a numpy type description of the new fields
The contents of "a" are copied over to the appropriate fields in
the new array, whereas the new fields are uninitialized. The
arguments are not modified.
>>> sa = numpy.array([(1, 'Foo'), (2, 'Bar')], \
dtype=[('id', int), ('name', 'S3')])
>>> sa.dtype.descr == numpy.dtype([('id', int), ('name', 'S3')])
True
>>> sb = add_field(sa, [('score', float)])
>>> sb.dtype.descr == numpy.dtype([('id', int), ('name', 'S3'), \
('score', float)])
True
>>> numpy.all(sa['id'] == sb['id'])
True
>>> numpy.all(sa['name'] == sb['name'])
True
"""
if a.dtype.fields is None:
raise ValueError, "`A' must be a structured numpy array"
b = numpy.empty(a.shape, dtype=a.dtype.descr + descr)
for name in a.dtype.names:
b[name] = a[name]
return b
Questions connexes
- 1. Ajout d'une ligne au recodage numpy
- 2. Ajout d'un champ à un modèle Django existant
- 3. Ajout d'un champ à un clone TClientDataset dans DELPHI
- 4. C# P/Invoke: Comment obtenir une double indirection pour un champ d'un paramètre structuré
- 5. Chaîne la plus longue du tableau d'objets numpy
- 6. Analyse du texte non structuré en Python
- 7. Comment puis-je savoir si un tableau numpy contient des entiers?
- 8. Wordpress: Comment inclure un champ personnalisé dans un tableau (SmplePie)
- 9. Comment passer un tableau comme un champ caché?
- 10. Ajout d'une classe à tous les en-têtes de tableau
- 11. Utilisation du MVP pour un modèle d'objet structuré composite
- 12. Ajout d'un objet à un tableau lu à partir d'un fichier
- 13. NumPy réseau tranche en utilisant Aucun
- 14. Statistiques avec numpy
- 15. python numpy savetxt
- 16. Hors champ dans le tableau généré KVC
- 17. Champ caché Jquery dans le tableau
- 18. PHP Arrays, ajout de récursivité de l'élément tableau récursivement à un tableau avec la clé de 'profondeur'
- 19. Ajouter 1 à un champ
- 20. Comment est-ce que j'utilise un tableau booléen 2-d pour sélectionner à partir d'un tableau 1-D sur une base par ligne en numpy?
- 21. Ajout d'une clé et de la valeur à tous les tableaux dans un tableau
- 22. suppression de lignes d'un tableau numpy basé sur l'unicité d'une valeur
- 23. Java Ajout d'une image au champ de données BLOB
- 24. Microsoft Access Ajout Querydef pour le champ Mémo
- 25. Impossible d'importer Numpy en Python
- 26. Ajout de données au champ plusieurs-à-plusieurs d'un modèle dans une vue
- 27. Comment ajouter un tableau à un autre tableau en PHP?
- 28. Ajout de JPanels supplémentaires à un JPanel
- 29. Ajout d'un LineString à un MultiLineString
- 30. Ajout d'informations redondantes à un itinéraire MVC
Peut-il être modifié pour éviter la duplication de la mémoire? (Voir [cette question] (http://stackoverflow.com/q/39965994/974555)) – gerrit