2012-09-05 3 views
1

J'ai un tableau 1-D en numpy dont la forme est (761,) et chaque entrée est un 10 tuple dont je ne peux accéder aux éléments indépendamment. Le DTYPE estTableau 1-D à 2-D en numpy

array1.dtype

dtype([('Name', '|S58'), ('Category', '|S32'), ('HQLocation', '|S34'), 
     ('YearFounded', '<i8'), ('Latitude', '<f8'), ('Longitude', '<f8'), 
     ('TotalFundingAmount', '<i8'), ('LastFundingAmount', '<i8'), 
     ('Investors', '<i8'), ('NGrams', '|S98')]) 

Une ligne exemple est array1 [578]

('"FoxyP2, Inc."', 'Education', '"Cuajimalpa, Mexico"', 2006, 19.3547, 
-99.3001, 55317213, 42999977, 3, 
'english;learning;reinvent;experience;english learning') 

Je suis en train de faire ce dans un tableau 2-D dont la forme est (761 , 10) tout en conservant les noms de colonne et les types de données.

+0

Je pense que cette question peut être répondue ici: http://stackoverflow.com/questions/9534408/numpy-genfromtxt -produces-array-of-what-looks-like-tuples-not-a-2d-arraywhy – Parsa

Répondre

2

C'est simplement impossible avec votre entrée, car les différentes colonnes n'ont pas le même type: certaines d'entre elles sont des chaînes, d'autres sont des flottants, des entiers.

Les tableaux numériques sont homogènes, ce qui signifie que toutes les entrées doivent avoir le même type de données. Ce type de données peut être simple (int, float, ...) ou compliqué (comme un tuple dont le premier élément est un "|S58", dont le quatrième est un int, dont le cinquième est un float ...), mais dans tous les cas, tous les entrées ont le même type. Vous pouvez obtenir plus d'informations dans la documentation, here et here.

Mais pourquoi avez-vous besoin d'un tableau 2D? Vous pouvez accéder et manipuler chaque colonne indépendamment avec l'indexation (par exemple, your_array[YearFounded] retournera votre quatrième colonne) ...

+0

Pouvez-vous me dire quel type de données est "| S58"? –

Questions connexes