J'utilise NumPy avec Python 2.6.2. J'essaye de créer un petit tableau booléen simple (longueur 3). Ce qui suit me donne un MemoryError, que je pense qu'il ne devrait pas.Erreur de mémoire (MemoryError) lors de la création d'un tableau numpy booléenne (Python)
import numpy as np
cond = np.fromiter((x in [2] for x in [0, 1, 2]), dtype = np.bool)
L'erreur qu'il me donne est:
MemoryError: ne peut pas allouer de la mémoire de tableau
Cependant, la méthode suivante d'obtenir une liste (par opposition à un ndarray) fonctionne très bien (sans utiliser numpy):
cond = list((x in [2] for x in [0, 1, 2]))
Ai-je fait quelque chose de mal dans le code Numpy? Mon sentiment est que cela devrait fonctionner.
Votre premier code fonctionne pour moi comme il est. Pouvez-vous poster les versions de Python et Numpy? –
Pour ce que ça vaut, je peux reproduire le problème en utilisant python 2.5 et numpy 1.1, mais pas avec quelque chose de plus récent. Sur les anciennes versions, cela fonctionne bien si vous spécifiez manuellement le 'count' kwarg (' count = 3', dans ce cas). Cependant, cela va à l'encontre de l'objectif d'utiliser 'np.fromiter' en premier lieu. Je suppose que c'est un bug en numpy qui a été corrigé entre 1.1 et 1.5? –