[Python] Divers traitements de données utilisant le tableau Numpy

Préparation

Créer un tableau avec 11 éléments de 0 à 10

arr = np.arange(11)
arr

array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Je vais calculer en utilisant ceci

Trouvez la racine carrée de chaque tableau
np.sqrt(arr)

array([ 0.        ,  1.        ,  1.41421356,  1.73205081,  2.        ,
        2.23606798,  2.44948974,  2.64575131,  2.82842712,  3.        ,
        3.16227766])
Trouvez la valeur que vous voulez pour alimenter la base e du logarithme naturel

La puissance de e est requise

np.exp(arr)

array([  1.00000000e+00,   2.71828183e+00,   7.38905610e+00,
         2.00855369e+01,   5.45981500e+01,   1.48413159e+02,
         4.03428793e+02,   1.09663316e+03,   2.98095799e+03,
         8.10308393e+03,   2.20264658e+04])

Une fonction qui renvoie des nombres aléatoires qui suivent une distribution normale

10 rendements aléatoires d'une distribution avec une moyenne de 0 et une variance de 1

A = np.random.randn(10)
A

array([ 1.58618601,  1.04344798, -1.27389788,  0.96399318, -0.01948978,
        1.74715498, -1.74566889,  0.22554911, -0.89309691,  0.64486646])
Ajouter deux distributions normales
B = np.random.randn(10)
B

array([ 0.24123105, -1.68669802,  1.89703691,  0.13287126, -1.77419931,
       -1.1523576 , -0.23598222,  0.03143082,  1.86305367,  0.21272997])
np.add(A,B)

array([ 1.82741706, -0.64325005,  0.62313903,  1.09686444, -1.79368909,
        0.59479738, -1.98165111,  0.25697993,  0.96995677,  0.85759643])
Renvoie le plus grand de chaque élément

Renvoie le plus grand de chaque élément de A et B

np.maximum(A,B)

array([ 1.58618601,  1.04344798,  1.89703691,  0.96399318, -0.01948978,
        1.74715498, -0.23598222,  0.22554911,  1.86305367,  0.64486646])

Traitement des données à l'aide du tableau Numpy

Se préparer à dessiner le graphique

import matplotlib.pyplot as plt
%matplotlib inline

Préparation

-5 à 5 par incréments de 0,01

points = np.arange(-5,5,0.01)
dx, dy = np.meshgrid(points,points)

De -5 à 5, il augmente par incréments de 0,01

dx

array([[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       ..., 
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],
       [-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99]])

Le contraire de dx

dy

array([[-5.  , -5.  , -5.  , ..., -5.  , -5.  , -5.  ],
       [-4.99, -4.99, -4.99, ..., -4.99, -4.99, -4.99],
       [-4.98, -4.98, -4.98, ..., -4.98, -4.98, -4.98],
       ..., 
       [ 4.97,  4.97,  4.97, ...,  4.97,  4.97,  4.97],
       [ 4.98,  4.98,  4.98, ...,  4.98,  4.98,  4.98],
       [ 4.99,  4.99,  4.99, ...,  4.99,  4.99,  4.99]])

Essayez de dessiner ces

plt.imshow(dx)

Vous pouvez voir qu'il pousse de gauche à droite

スクリーンショット 2016-10-23 10.52.06.png

plt.imshow(dy)

Vous pouvez voir qu'il pousse de haut en bas

スクリーンショット 2016-10-23 10.56.33.png

Essayez de faire des calculs compliqués

La somme de dx et dy en utilisant la fonction triangulaire sin, respectivement.

z = (np.sin(dx) + np.sin(dy))
z

array([[  1.91784855e+00,   1.92063718e+00,   1.92332964e+00, ...,
         -8.07710558e-03,  -5.48108704e-03,  -2.78862876e-03],
       [  1.92063718e+00,   1.92342581e+00,   1.92611827e+00, ...,
         -5.28847682e-03,  -2.69245827e-03,  -5.85087534e-14],
       [  1.92332964e+00,   1.92611827e+00,   1.92881072e+00, ...,
         -2.59601854e-03,  -5.63993297e-14,   2.69245827e-03],
       ..., 
       [ -8.07710558e-03,  -5.28847682e-03,  -2.59601854e-03, ...,
         -1.93400276e+00,  -1.93140674e+00,  -1.92871428e+00],
       [ -5.48108704e-03,  -2.69245827e-03,  -5.63993297e-14, ...,
         -1.93140674e+00,  -1.92881072e+00,  -1.92611827e+00],
       [ -2.78862876e-03,  -5.85087534e-14,   2.69245827e-03, ...,
         -1.92871428e+00,  -1.92611827e+00,  -1.92342581e+00]])

Essayez de dessiner

plt.imshow(z)
plt.colorbar()

スクリーンショット 2016-10-23 11.02.04.png

Divers traitements de données à l'aide de tableaux

Préparer une séquence expérimentale

A = np.array([1,2,3,4])
B = np.array([1000,2000,3000,4000])

Identifiez la valeur qui remplit les conditions

condition = np.array([True, True, False, False])
answer = [(a if cond else b) for a,b,cond in zip(A,B,condition)]
answer

[1,2,3000,4000]

La notation d'inclusion de la liste présente les inconvénients d'être lente et de ne pas pouvoir gérer plusieurs dimensions. Augmentez la vitesse pour accueillir des baies multidimensionnelles

answer2 = np.where(condition, A, B)
answer2

array([   1,    2, 3000, 4000])

np.where peut également être utilisé pour les tableaux à deux dimensions Créer des valeurs aléatoires tirées d'une distribution normale standard 5x5

from numpy.random import randn
arr = randn(5,5)
arr

array([[-1.00937032,  1.23348883,  0.1267633 ,  0.6637059 ,  0.96770594],
       [ 0.29606946, -0.63752513,  0.97016509,  0.42688117, -2.38404912],
       [ 1.0549739 , -0.12309795, -0.22361239,  1.91466958, -0.35711905],
       [ 0.22359192, -1.60330203,  1.23216518, -0.99154743,  0.52558739],
       [-1.11301393,  0.1911824 ,  1.14858049, -0.19331843,  0.42102773]])

Essayez de renvoyer 0 pour ces valeurs si elles sont inférieures à 0, sinon renvoyez la valeur d'origine

np.where(arr < 0, 0, arr)

array([[ 0.        ,  1.23348883,  0.1267633 ,  0.6637059 ,  0.96770594],
       [ 0.29606946,  0.        ,  0.97016509,  0.42688117,  0.        ],
       [ 1.0549739 ,  0.        ,  0.        ,  1.91466958,  0.        ],
       [ 0.22359192,  0.        ,  1.23216518,  0.        ,  0.52558739],
       [ 0.        ,  0.1911824 ,  1.14858049,  0.        ,  0.42102773]])

Tous les nombres négatifs seront 0. C'est très simple à écrire.

Jetez un œil à d'autres fonctions numpy

Préparation
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr

array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
fonction somme

Calcul de la valeur totale

arr.sum()       
45

La fonction de somme peut vous aider à déterminer quel axe procéder au calcul. Par exemple, si l'argument 0 est défini, le calcul est effectué dans le sens de la ligne et si l'argument 1 est défini, le calcul est effectué dans le sens de la colonne.

arr.sum(0)
array([12, 15, 18])
arr.sum(1)
array([ 6, 15, 24])
fonction moyenne

Valeur moyenne

arr.mean()
5.0
fonction std

écart-type

arr.std()
2.5819888974716112
fonction var

Distribué

arr.var()
6.666666666666667

Fonction pratique de numpy any, all

Préparation
bool_arr = np.array([True, False, True])
bool_arr

array([ True, False,  True], dtype=bool)
toute fonction

Si même un seul est vrai, renvoie True

bool_arr.any()
True
toute fonction

Renvoie True si tout est vrai

bool_arr.all()
False

Recommended Posts

[Python] Divers traitements de données utilisant le tableau Numpy
[Python] Temps de traitement de la multiplication de la matrice avec NumPy
Nettoyage des données à l'aide de Python
[Python] Tri des données Numpy
Divers traitements de Python
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
Analyse de données à l'aide de pandas python
Utilisation du mode Python dans le traitement
Acquisition de données à l'aide de l'API googlemap de python
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
[Python] Chapitre 04-06 Différentes structures de données (création de dictionnaire)
Traitement d'exécution périodique lors de l'utilisation de tkinter [Python3]
[Python] Accélération du traitement à l'aide des outils de cache
Application de Python: visualisation de données Partie 3: divers graphiques
"Data Science 100 Knock (traitement de données structurées)" Explication Python-007
"Data Science 100 Knock (traitement des données structurées)" Explication Python-006
[Python] Chapitre 04-03 Diverses structures de données (liste multidimensionnelle)
[Python] Chapitre 04-04 Diverses structures de données (voir liste)
"Data Science 100 Knock (traitement des données structurées)" Explication Python-001
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
[Python] Chapitre 04-02 Diverses structures de données (manipulation de liste)
"Data Science 100 Knock (traitement des données structurées)" Explication Python-002
[Python] Chapitre 04-07 Diverses structures de données (manipulation de dictionnaire)
[Python] 100 coups sur la science des données (traitement de données structurées) 021 Explication
"Data Science 100 Knock (traitement des données structurées)" Explication Python-005
"Data Science 100 Knock (traitement de données structurées)" Explication Python-004
Créer une feuille de calcul Google à l'aide de l'API Python / Google Data
[Python] 100 coups sur la science des données (traitement de données structurées) 020 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 025 Explication
"Data Science 100 Knock (traitement des données structurées)" Explication Python-003
[Python] 100 coups sur la science des données (traitement de données structurées) 019 Explication
Partage de données de type liste entre processus par traitement parallèle à l'aide du multitraitement Python
Mon Numpy (Python)
[Python] 100 coups sur la science des données (traitement de données structurées) 018 Explication
traitement d'image python
[Python] 100 coups sur la science des données (traitement de données structurées) 023 Explication
[Python] Obtenez tous les commentaires à l'aide de Youtube Data Api
Analyse de données python
[Python] 100 coups sur la science des données (traitement de données structurées) 030 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 022 Explication
[Python] Permutation des lignes et des colonnes de données Numpy
Déboguer avec VS Code en utilisant Boost Python Numpy
Commencez à utiliser Python
Traitement de fichiers Python
[Pandas] Principes de base du traitement des données de date à l'aide de dt
1. Statistiques apprises avec Python 1-2. Calcul de diverses statistiques (Numpy)
100 langage de traitement knock-20 (à l'aide de pandas): lecture de données JSON
Les bases de #Python (#Numpy 1/2)
[Python] 100 coups sur la science des données (traitement de données structurées) 017 Explication
# 3 [python3] Divers opérateurs
Les bases de #Python (#Numpy 2/2)
[Python] 100 coups sur la science des données (traitement de données structurées) 026 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 016 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 024 Explication
Étude introductive sur Python-Sortie des données de vente à l'aide de tapple-
Principes de base de Python #Numpy
Application de Python: Traitement des données Partie 2: Analyse de divers formats de données
[Python] 100 coups sur la science des données (traitement de données structurées) 027 Explication