J'ai un tableau numpy:
A = np.array([8, 2, 33, 4, 3, 6])
Ce que je veux, c'est créer un autre tableau B où chaque élément est le max de 2 paires consécutives dans A, donc je reçois:
B = np.array([8, 33, 33, 4, 6])
Des idées sur la manière de mettre en œuvre?
[.____] des idées sur la manière de la mettre en œuvre pour plus de 2 éléments? (même chose mais pour les n éléments consécutifs)
Les réponses m'ont donné un moyen de résoudre cette question, mais pour la vitrine N-Taille, y a-t-il une manière plus efficace qui ne nécessite pas de boucles?
Il est possible que la question est équivalente pour demander comment effectuer 1D max-mise en commun d'une liste avec une fenêtre de taille n. Est-ce que quelqu'un sait comment mettre en œuvre cela efficacement?
Utilisation Pandas
:
A = pd.Series([8, 2, 33, 4, 3, 6])
res = pd.concat([A,A.shift(-1)],axis=1).max(axis=1,skipna=False).dropna()
>>res
0 8.0
1 33.0
2 33.0
3 4.0
4 6.0
Ou à l'aide de NUMPY:
np.vstack([A[1:],A[:-1]]).max(axis=0)