2017-10-13 1 views
0

Le code suivant génère une matrice X (j'utilise Python 2.7):Comment effectuer du chargement de texte avec des supports en utilisant numpy

X = [random.randint(0, 2 ** 8) for _ in range(num)] 

# Removes duplicates 
X = list(set(X)) 

# Transforms into string representation 
X = [('{0:0' + str(8) + 'b}').format(x) for x in X] 

# Transforms each bit into an integer. 
X = np.asarray([list(map(int, list(x))) for x in X], dtype=np.int8) 

Ce qui est délibérément sous cette forme (En supposant que je produis seulement 10 numéros):

[[1 0 1 1 0 0 0 0] 
[0 1 0 0 0 1 1 1] 
[0 0 0 0 0 0 0 1] 
[1 0 0 0 0 1 0 0] 
[0 1 1 0 0 1 1 0] 
[1 1 0 0 1 1 0 1] 
[1 1 1 0 0 1 1 1] 
[0 1 0 0 1 1 1 1]] 

Mon but est de le stocker et de le charger de nouveau (avec des crochets) en utilisant numpy. Dans le processus de stockage, j'utilise numpy.savetxt('dataset.txt', X, fmt='%d') (qui supprime les crochets :() .Le problème est que je veux le recharger dans la même forme que celle montrée ci-dessus (y compris les crochets), en utilisant numpy.loadtxt(StringIO('dataset.txt')) cela aide-t-il? pas sûr de savoir comment mettre en oeuvre. J'ai essayé de trouver un (efficace) astuce pour le faire, mais vraiment je suis coincé !! Toute aide est vraiment apprécié.

Merci

+0

Vous pouvez faire l'aller-retour 'savetxt/loadtxt' avec un simple tableau comme celui-ci: ne vous attendez pas à voir [] dans le fichier, mais si vous n'avez pas besoin d'un fil lisible par l'homme e, la paire 'save/load' est meilleure (et plus rapide). – hpaulj

Répondre

1

J'utiliser np.save() qui va l'enregistrer en tant que fichier binaire et utiliser np.load() pour le récupérer

+0

Wow qui a fonctionné! Merci pour l'indice! – Judas