2017-10-13 2 views
0

Je voudrais créer un tableau numpy avec 3 colonnes (pas vraiment), dont le dernier sera une liste de longueurs variables (vraiment).définir un élément de tableau avec une liste

N = 2 
A = numpy.empty((N, 3)) 
for i in range(N): 
    a = random.uniform(0, 1/2) 
    b = random.uniform(1/2, 1) 
    c = [] 
    A[i,] = [a, b, c] 

Au cours de l'exécution, j'ajouterai ou retirerai des éléments des listes. J'ai utilisé numpy.empty pour initialiser le tableau car il est censé donner un type d'objet, même si je reçois le 'set un tableau avec une erreur de séquence'. Je sais que je suis, c'est ce que je veux faire.

Les questions précédentes sur ce sujet semblent être d'éviter l'erreur; Je dois contourner l'erreur. Le tableau réel a 1M + lignes, sinon je considérerais un dictionnaire. Des idées?

+0

"J'ai utilisé numpy.empty pour initialiser le tableau car il est censé donner un type d'objet" - quoi? Si vous voulez un tableau d'objet dtype, dites-lui que vous voulez cela avec 'dtype = object'. – user2357112

+0

Le type d par défaut pour 'np.empty' est float. Examiner un procès 'A'. – hpaulj

+0

Super! Merci d'avoir corrigé mon idée fausse. A = numpy.empty ((N, 3)). Astype (objet) fonctionne. – zazizoma

Répondre

0

Initialiser A avec

A = numpy.empty((N, 3), dtype=object) 

par numpy.empty docs. Ceci est plus logique que A = numpy.empty((N, 3)).astype(object) qui crée d'abord un tableau de flottants (type de données par défaut) et ensuite il le convertit en type d'objet.