Équivalents Numpy et Scanf, transformant le flux de sortie binaire en un tableau

StackOverflow https://stackoverflow.com/questions/6391195

  •  29-10-2019
  •  | 
  •  

Question

J'utilise la bibliothèque Linux-GPIB pour parler à des équipements de banc. Je peux demander à l'appareil la sortie de son tampon, et il diffuse à STD. J'utilise quelque chose comme:

import gpib 

gpib.write(16,"FORM3;OUTPDATA;") #FORM3 is binary

data=gpib.read(16,10000)

Je ne sais pas à quoi ressemble le format de sortie, j'ai oublié comment les données sont délimitées. Mais je pense que je dois faire une sorte de fonction Scanf pour saisir les flotteurs et les sortir dans un tableau.

J'ai installé Numpy et je pense qu'il devrait y avoir un moyen de demander à Python de saisir les flotteurs du flux et de les mettre dans un tableau.

Google n'a pas beaucoup aidé, Numpy est vraiment nouveau pour moi. Je connais la commande MATLAB et C OK.

Était-ce utile?

La solution

Si vous lisez les données sur une chaîne, comme vous l'avez fait ci-dessus, utilisez numpy.fromstring:

data = '1 2 3 4 5 6 7 8'
print np.fromstring(data, sep=' ')
# [ 1.  2.  3.  4.  5.  6.  7.  8.]

En règle générale en Python, l'analyse plus générale se fait avec des expressions régulières plutôt que le scanf. Voir sscanf en python

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top