Comment créer un tableau numpy de longueur arbitraire des chaînes?
Je suis un novice complet de Python, mais il semble comme une chaîne donnée est en mesure d'être (efficacement) longueur arbitraire. c'est à dire que vous pouvez prendre une string str
et de garder en ajoutant à cela: str += "some stuff..."
. Est-il possible de faire un tableau de chaînes?
Quand j'essaie, chaque élément stocke uniquement un caractère unique
strArr = numpy.empty(10, dtype='string')
for i in range(0,10)
strArr[i] = "test"
D'autre part, je sais que je peux initialiser un tableau de certaines chaînes de longueur, c'est à dire
strArr = numpy.empty(10, dtype='s256')
qui peut stocker que de 10 chaînes de jusqu'à 256 caractères.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire en créant un tableau de
dtype=object
. Si vous essayez d'attribuer une longue chaîne normale tableau numpy, il tronque la chaîne:Mais lorsque vous utilisez
dtype=object
, vous obtenez un tableau de python références de l'objet. Ainsi, vous pouvez avoir tous les comportements de python chaînes:En effet, parce que c'est un tableau d'objets, vous pouvez affecter tout type d'objet python au tableau:
Cependant, cette commande annule beaucoup de les avantages de l'utilisation de numpy, qui est si rapide, car il travaille sur de grands blocs contigus de la mémoire brute. Travailler avec des objets python ajoute beaucoup de frais généraux. Un exemple simple:
object
dtype, puisnp.fromstring(arr.tostring())
échouera avecnumpy Cannot create an object array from a string
. Toutes les idées pour résoudre ce problème?Vous pouvez utiliser le type de données objet: