Imprimer un tableau d'entiers sous forme de nombres hexadécimaux
J'ai un tableau créé à l'aide de
array1 = np.array([[25, 160, 154, 233],
[61, 244, 198, 248],
[227, 226, 141, 72 ],
[190, 43, 42, 8]],np.int) ;
qui s'affiche comme
[[25, 160, 154, 233]
[61, 244, 198, 248]
[227, 226, 141, 72]
[190, 43, 42 , 8]]
Comment puis-je afficher ce tableau sous forme de nombres hexadécimaux comme ceci:
[[0x04, 0xe0, 0x48, 0x28]
[0x66, 0xcb, 0xf8, 0x06]
[0x81, 0x19, 0xd3, 0x26]
[0xe5, 0x9a, 0x7a, 0x4c]]
Remarque: les chiffres en hexadécimal peut ne pas être de véritables conversions de nombres dans l'int. J'ai rempli hex tableau juste pour donner l'exemple de ce dont j'ai besoin.
source d'informationauteur adeel asif
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir les options d'impression pour numpy pour ce faire.
donne
Le L à la fin est juste parce que je suis sur une plate-forme 64 bits et c'est l'envoi de la nostalgie pour le formateur. Pour corriger cela, vous pouvez utiliser
Python a un construit en fonction hex pour la conversion des entiers à leur représentation hexadécimale (une chaîne). Vous pouvez utiliser numpy.vectoriser à appliquer sur les éléments du tableau multidimensionnel.
Il y a peut être une méthode intégrée de le faire avec numpy qui serait un meilleur choix si la vitesse est un problème.
Juste en les jetant dans mes deux cents, vous pouvez le faire assez simplement en utilisant la liste de compréhension si c'est toujours d'un tableau 2d comme ça
qui vous donne
[['0x1', '0x2'], ['0x3', '0x4']]
Ce one-liner:
Il devrait être possible d'obtenir le comportement que vous voulez avec
numpy.set_printoptions
à l'aide de laformatter
mot-clé arg. Il faut un dictionnaire avec une spécification de type (c'est à dire'int'
) et un objet appelable retour de la chaîne de caractères à imprimer. J'aimerais insérer le code mais mon ancienne version denumpy
ne dispose pas de la fonctionnalité. (berk.)Si ce que vous cherchez, c'est juste pour de l'affichage vous pouvez faire quelque chose comme ceci: