Comment utiliser la fonction numpy.ajouter
J'ai un problème à l'aide de la fonction numpy.append.
J'ai écrit la fonction suivante dans le cadre d'un grand morceau de code,
cependant, mon erreur est reproduite dans l'suivantes:
data = [
[
'3.5', '3', '0', '0', '15', '6',
'441', 'some text', 'some more complicated data'
],
[
'4.5', '5', '1', '10', '165', '0',
'1', 'some other text', 'some even more complicated data'
]
]
def GetNumpyArrey(self, index):
r = np.array([])
for line in data:
np.append(r, float(line[index]))
print r
index < 6.
le résultat est:
>> []
ce que je fais mal?
Merci beaucoup !
stackoverflow.com/questions/5064822/...
@BrenBarn points, il n'y a pas de raison d'utiliser
@BrenBarn points, il n'y a pas de raison d'utiliser
numpy.append
ici. Les plus efficaces chose à faire est d'abord allouer r
à len(data)
. Si vous ne connaissez pas la longueur à l'avance (par exemple, la lecture à partir d'un fichier), puis @BrenBarn la suggestion de créer une liste et de conversion d'un tableau est la meilleure.OriginalL'auteur mm_ | 2012-11-22
Vous devez vous connecter pour publier un commentaire.
Contrairement à la liste
append
méthode, numpy estappend
n'ajoute pas en place. Il renvoie un nouveau tableau avec les éléments supplémentaires ajoutés. Donc, vous devez fairer = np.append(r, float(line[index]))
.La construction des tableaux numpy dans cette façon de faire est inefficace. Il est préférable de simplement construire votre liste comme une liste Python et ensuite faire un tableau numpy à la fin.
OriginalL'auteur BrenBarn