Tableau NumPy/matrice de différents types

Je suis en train de créer un tableau NumPy/matrice (Nx3) avec un mélange de types de données (string, integer, integer). Mais quand je suis à l'ajout de cette matrice en ajoutant des données, j'obtiens une erreur: TypeError: invalid type de promotion. S'il vous plaît, quelqu'un peut-il m'aider à résoudre ce problème?

Lorsque je crée un tableau avec les données de l'échantillon, NumPy jette toutes les colonnes dans la matrice de la un " S " type de données. Et je ne peux pas spécifier le type de données pour un tableau, parce que quand je fais ce res = np.array(["TEXTE", 1, 1], dtype=S', i4 i4') - j'obtiens une erreur: TypeError: attendu lisible tampon objet

templates.py

import numpy as np
from pprint import pprint

test_array = np.zeros((0, 3), dtype='S, i4, i4')
pprint(test_array)

test_array = np.append(test_array, [["TEXT", 1, 1]], axis=0)
pprint(test_array)

print("Array example:")
res = np.array(["TEXT", 1, 1])
pprint(res)

De sortie:

array([], shape=(0L, 3L), 
  dtype=[('f0', 'S'), ('f1', '<i4'), ('f2', '<i4')])

 Array example:
 array(['TEXT', '1', '1'], dtype='|S4')

Erreur:

Traceback (most recent call last):

File "templates.py", line 5, in <module>
test_array = np.append(test_array, [["TEXT", 1, 1]], axis=0)

File "lib\site-packages\numpy\lib\function_base.py", line 3543, in append
return concatenate((arr, values), axis=axis)

TypeError: invalid type promotion
  • test_array = np.zeros((0,), dtype='S, i4, i4') produit un tableau avec des 0 'lignes', et 3 nommé "colonnes". C'est vraiment un tableau 1d.
  • En général, dans numpy il n'est pas une bonne idée de construire des tableaux en ajoutant. Il est préférable d'ajouter à une liste, et construire le tableau de cela. Ou de démarrer avec un assez grand "vide", tableau et insérer des valeurs. Ou concaténer des tableaux.
  • J'ai juste regardé le append code. En fait, il utilise concatenate. Essayez de créer un tableau avec le "TEXTE" de données, et de les enchaîner que pour test_array.
InformationsquelleAutor Vit D | 2014-07-18