Convertir un numpy.ndarray à la chaîne(ou d'octets) et la reconvertir en numpy.ndarray
Je vais avoir un peu de mal ici,
Je suis en train de convertir un numpy.ndarray à la chaîne, je l'ai déjà fait comme ceci:
randomArray.tostring()
Cela fonctionne, mais je me demande si je peux le transformer à un numpy.ndarray.
Quelle est la meilleure façon de le faire?
Je suis en utilisant numpy 1.8.1
Contexte:
L'objectif est d'envoyer le numpy.ndarray comme un message dans rabbitmq (pika bibliothèque)
Vous pourriez trouver cette réponse utile: [1]: stackoverflow.com/questions/5387208/...
Malheureusement, la méthode tostring() renvoie octets, et je ne sais pas comment faire pour le convertir, même avec cette solution.
Malheureusement, la méthode tostring() renvoie octets, et je ne sais pas comment faire pour le convertir, même avec cette solution.
OriginalL'auteur Ampo | 2015-05-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la méthode fromstring pour cela:
Désolé pour la réponse courte, pas assez de points pour les commentaires. N'oubliez pas de l'état les types de données ou vous finirez dans un monde de douleur.
fromstring
, nice ! cependant, il ne semble pas fonctionner matrices multi-dimensionnelles (renvoie unflat
version de l'un tableau multi-dimensionnel). Je suppose que vous pouvez remodeler la matrice par la suite si vous connaissez les dimensions.Cela peut fonctionner, la chose étrange est que mon
tostring()
méthode renvoie des choses étranges (octets?) lefromstring()
ne fonctionne pas parfaitement.vous pouvez utiliser repr(ts) pour afficher le binaire, mais vous devrez le convertir en utilisant des np.fromstring(ts,dtype=int), n'oubliez pas d'utiliser le type de données correct. Êtes-vous à l'aide de flotteurs ou de nombres entiers? Post le type de tableau que vous essayez d'envoyer.
Je suis à l'aide de nombres entiers. Le type exact de la première pile est numpy.uint8
Franchement je ne voudrais pas sérialiser avec numpy, mon conseil est de vider le lot en JSON et l'analyser à l'autre bout...pas de maux de tête.
OriginalL'auteur ajsp
Si vous utilisez
tostring
vous perdez l'information sur à la fois la forme et le type de données:Cela signifie que vous devez envoyer les méta-données avec les données vers le destinataire. L'échange automatique de la cohérence des objets, essayez cPickle:
np.uint8
/np.uint16
OriginalL'auteur simleo
Imaginez que vous avez un tableau numpy d'entiers (il fonctionne avec d'autres types, mais vous avez besoin d'une légère modification). Vous pouvez faire ceci:
Si vous avez un tableau de float, assurez-vous de remplacer
int
parfloat
dans la dernière ligne.Vous pouvez également utiliser le
__repr__()
méthode, qui aura l'avantage de travailler pour les multi-dimensions des tableaux:__repr__()
méthode devrait fonctionner, mais il ne le fait pas. Le tableau est vraiment très grand (1000000+ valeurs), je me retrouve avec 1000 valeurs après la conversion avec__repr__()
eteval()
accidents(?)oui, __repr__() se bloque avec les grandes baies en raison de la représentation de grands tableaux numpy (tableaux de grande taille ont
...
au lieu de plein tableaux). Vous pouvez changer ce comportement (avec set_printoptions) ... j'ai juste édité ma réponse, voir si cela fonctionne mieux.OriginalL'auteur Julien Spronck
Imaginez que vous avez un tableau numpy de texte comme dans un messenger
et vous souhaitez obtenir des statistiques à partir du corpus (texte, col=11), vous devez d'abord obtenir les valeurs de dataframe (df5) et ensuite rejoindre tous les enregistrements en un seul corpus:
Je pense que vous répondez à la mauvaise question ici.
ne pense pas causer stex est un tableau numpy type(stex) <de la classe de numpy.ndarray " > puis-je convertir a_str et après fd2 de retour pour sauver le freqdist() dans un tableau
OriginalL'auteur Max Kleiner