Python >> Tutoriel Python >  >> Python Tag >> NumPy

NumPy Remodeler 1D en 2D

Formulation du problème : Soit un tableau NumPy unidimensionnel. Comment créer un nouveau tableau à deux dimensions en remodelant le tableau d'origine afin que le nouveau tableau ait x lignes et y colonnes ?

Voici un exemple de ce que vous essayez de faire :

# Given: 
[0 1 2 3 4 5]
x = 2 # rows
y = 3 # columns

# Desired:
[[0 1 2]
 [3 4 5]]

Solution :reshape() de NumPy La fonction prend un tableau à remodeler comme premier argument et le nouveau tuple de forme comme second argument. Il renvoie une nouvelle vue sur les données existantes, si possible, plutôt que de créer une copie complète du tableau d'origine. Le tableau renvoyé se comporte comme un nouvel objet :toute modification apportée à une vue n'affectera aucune autre vue.

Vous pouvez transformer un tableau 1D en tableau 2D en suivant les quatre étapes suivantes :

  1. Importer la bibliothèque NumPy avec import numpy as np ,
  2. Utilisez la fonction np.reshape(...) ,
  3. Passez le tableau 1D d'origine comme premier argument,
  4. Passez le nouveau tuple de forme (x, y) définir x lignes et y colonnes comme deuxième argument.

En résumé, l'appel de fonction np.reshape(original_array, (x, y)) va créer un tableau 2D avec x lignes et y Colonnes.

import numpy as np

# Problem: Reshape this 1D into a 2D array
array_1d = np.array([0, 1, 2, 3, 4, 5])

# Solution: np.reshape(array, shape)
array_2d = np.reshape(array_1d, (2, 3))

# Check the new array
print(array_2d) 

La sortie est le tableau 2D dans sa forme souhaitée :

# Reshaped 2D Array:
[[0 1 2]
 [3 4 5]]

Entraînez-vous pour développer votre compréhension de la fonctionnalité de remodelage 1D en 2D !

Remodelage du puzzle NumPy

Numpy est une bibliothèque Python populaire pour la science des données axée sur l'algèbre linéaire. Ce puzzle effectue une analyse de stock miniature de l'action Apple.

import numpy as np

# apple stock prices (May 2018)
prices = [ 189, 186, 186, 188,
187, 188, 188, 186,
188, 188, 187, 186 ]
prices = np.array(prices)

data_3day = prices.reshape(4,3)

print(int(np.average(data_3day[0])))
print(int(np.average(data_3day[-1])))

Exercice :Quel est le résultat de ce puzzle ?

Vous pouvez également résoudre le puzzle de manière interactive sur notre application de formation basée sur les puzzles Finxter ici :

Tout d'abord, nous créons un tableau NumPy à partir des données de prix brutes.

Deuxièmement, nous créons un nouveau tableau data_3day pour une analyse plus pratique. Ce tableau regroupe les données de prix de trois jours dans chaque ligne. Nous examinerons certaines lignes plus en détail ultérieurement.

Troisièmement, nous calculons la moyenne des données de prix sur 3 jours de la première et de la dernière ligne à l'aide du NumPy np.average() fonction. Cela se traduit par des points de données plus robustes par rapport aux valeurs aberrantes. La comparaison de la première et de la dernière période de prix de 3 jours révèle que le cours de l'action Apple reste stable dans notre mini ensemble de données.

Vidéo de remodelage de NumPy

Voulez-vous devenir un maître NumPy ? Découvrez notre livre de puzzle interactif Coffee Break NumPy et boostez vos compétences en data science ! (Le lien Amazon s'ouvre dans un nouvel onglet.)