J'ai deux tableaux différents que je voudrais combiner afin que le nouveau tableau ait toujours la même forme que chacun des anciens.
import numpy as np
x = (['1','2','3','4','5','6','7','8','9'])
y = (['a','b','c','d','e','f','g','h','i'])
z = np.array(zip(x,y))
print z
print np.shape(z)
Me prend
[['1' 'a']
['2' 'b']
['3' 'c']
['4' 'd']
['5' 'e']
['6' 'f']
['7' 'g']
['8' 'h']
['9' 'i']]
(9, 2)
Et j'aimerais avoir
[['1 a']
['2 b']
['3 c']
['4 d']
['5 e']
['6 f']
['7 g']
['8 h']
['9 i']]
(9,)
Car j'ai besoin que le nouveau tableau ait une seule dimension pour un traitement ultérieur. Comme je suis un débutant, je pense que la fonction zip () pourrait ne pas être la bonne, mais j'ai également essayé la fonction .join () et je n'ai pas pu le comprendre de cette façon.
3 réponses
Je pense que vous avez juste besoin de rejoindre après avoir zippé. Essayez cette compréhension de la liste:
z = [" ".join(item) for item in zip(x, y)]
C'est ce que vous vouliez dire?
Vous pouvez créer une classe pour contenir les deux éléments pour un meilleur accès. Par exemple,
import numpy as np
class Elem():
def __init__(self, a, b):
self.a = a
self.b = b
def create(lst):
l = []
for a, b in lst:
l.append(Elem(a, b))
return l
x = ['1','2','3','4','5','6','7','8','9']
y = ['a','b','c','d','e','f','g','h','i']
z = np.array(create(zip(x,y)))
print np.shape(list(z))
x =(['1','2','3','4','5','6','7','8','9'])
y = (['a','b','c','d','e','f','g','h','i'])
z =np.array(zip(x,y))
print z
print z[:,0].shape
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.