[Python] Verschiedene Datenverarbeitung mit Numpy-Array

Vorbereitung

Erstellen Sie ein Array mit 11 Elementen von 0 bis 10

arr = np.arange(11)
arr

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

Ich werde damit rechnen

Finden Sie die Quadratwurzel jedes Arrays
np.sqrt(arr)

array([ 0.        ,  1.        ,  1.41421356,  1.73205081,  2.        ,
        2.23606798,  2.44948974,  2.64575131,  2.82842712,  3.        ,
        3.16227766])
Finden Sie den Wert, mit dem Sie die Basis e des natürlichen Logarithmus versorgen möchten

Die Potenz von e ist erforderlich

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])

Eine Funktion, die Zufallszahlen zurückgibt, die einer Normalverteilung folgen

10 zufällige Rückgaben aus einer Verteilung mit einem Mittelwert von 0 und einer Varianz von 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])
Fügen Sie zwei Normalverteilungen hinzu
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])
Geben Sie den größeren Wert jedes Elements zurück

Geben Sie das größere Element von A und B zurück

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])

Datenverarbeitung mit Numpy Array

Vorbereiten des Zeichnens des Diagramms

import matplotlib.pyplot as plt
%matplotlib inline

Vorbereitung

-5 bis 5 in Schritten von 0,01

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

Von -5 bis 5 wächst es in Schritten von 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]])

Das Gegenteil von 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]])

Versuchen Sie, diese zu zeichnen

plt.imshow(dx)

Sie können sehen, dass es von links nach rechts wächst

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

plt.imshow(dy)

Sie können sehen, dass es von oben nach unten wächst

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

Versuchen Sie, komplizierte Berechnungen durchzuführen

Die Summe von dx und dy unter Verwendung der Dreiecksfunktion sin.

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]])

Versuche zu zeichnen

plt.imshow(z)
plt.colorbar()

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

Verschiedene Datenverarbeitung mit Arrays

Bereiten Sie eine experimentelle Sequenz vor

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

Identifizieren Sie den Wert, der die Bedingungen erfüllt

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]

Die Einschlussnotation der Liste hat die Nachteile, dass sie langsam ist und nicht in der Lage ist, mehrere Dimensionen zu verarbeiten. Erhöhen Sie die Geschwindigkeit, um mehrdimensionale Arrays aufzunehmen

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

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

np.where kann auch für zweidimensionale Arrays verwendet werden Erstellen Sie zufällige Werte aus einer Standard-5x5-Normalverteilung

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]])

Versuchen Sie, für diese Werte 0 zurückzugeben, wenn sie kleiner als 0 sind. Andernfalls geben Sie den ursprünglichen Wert zurück

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]])

Alle negativen Zahlen sind 0. Es ist sehr einfach zu schreiben.

Schauen Sie sich andere Numpy-Funktionen an

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

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

Berechnung des Gesamtwertes

arr.sum()       
45

Die Summenfunktion kann unterstützen, welche Achse mit der Berechnung fortzufahren ist. Wenn beispielsweise Argument 0 gesetzt ist, wird die Berechnung in Zeilenrichtung ausgeführt, und wenn Argument 1 gesetzt ist, wird die Berechnung in Spaltenrichtung durchgeführt.

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

Durchschnittswert

arr.mean()
5.0
Standardfunktion

Standardabweichung

arr.std()
2.5819888974716112
var Funktion

Verteilt

arr.var()
6.666666666666667

Bequeme Funktion von numpy any, all

Vorbereitung
bool_arr = np.array([True, False, True])
bool_arr

array([ True, False,  True], dtype=bool)
jede Funktion

Wenn auch nur einer wahr ist, geben Sie True zurück

bool_arr.any()
True
alle funktionieren

Gibt True zurück, wenn alles wahr ist

bool_arr.all()
False

Recommended Posts

[Python] Verschiedene Datenverarbeitung mit Numpy-Array
[Python] Matrix-Multiplikationsverarbeitungszeit mit NumPy
Datenbereinigung mit Python
[Python] Numpy Daten sortieren
Verschiedene Verarbeitung von Python
Verarbeiten Sie CSV-Daten mit Python (Zählverarbeitung mit Pandas)
Datenanalyse mit Python-Pandas
Verwenden des Python-Modus in der Verarbeitung
Datenerfassung mit Python Googlemap API
[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
[Python] Kapitel 04-06 Verschiedene Datenstrukturen (Erstellung eines Wörterbuchs)
Periodische Ausführungsverarbeitung bei Verwendung von tkinter [Python3]
[Python] Beschleunigung der Verarbeitung mit Cache-Tools
Anwendung von Python: Datenvisualisierung Teil 3: Verschiedene Grafiken
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-007 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-006 Erläuterung
[Python] Kapitel 04-03 Verschiedene Datenstrukturen (mehrdimensionale Liste)
[Python] Kapitel 04-04 Verschiedene Datenstrukturen (siehe Liste)
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-001 Erläuterung
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
[Python] Kapitel 04-02 Verschiedene Datenstrukturen (Listenmanipulation)
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-002 Erläuterung
[Python] Kapitel 04-07 Verschiedene Datenstrukturen (Wörterbuchmanipulation)
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 021 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-005 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-004 Erläuterung
Erstellen einer Google-Tabelle mit der Python / Google Data-API
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 020 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 025 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-003 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 019 Erläuterung
Freigeben von Daten vom Listentyp zwischen Prozessen durch parallele Verarbeitung mithilfe von Python Multiprocessing
Mein Numpy (Python)
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 018 Erläuterung
Python-Bildverarbeitung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 023 Erläuterung
[Python] Holen Sie sich alle Kommentare mit Youtube Data Api
Datenanalyse Python
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 030 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 022 Erläuterung
[Python] Vertauschen von Zeilen und Spalten mit Numpy-Daten
Debuggen mit VS-Code mit Boost Python Numpy
Starten Sie Python
Python-Dateiverarbeitung
[Pandas] Grundlagen der Verarbeitung von Datumsdaten mit dt
1. Mit Python 1-2 gelernte Statistiken. Berechnung verschiedener Statistiken (Numpy)
100 Sprachverarbeitung Knock-20 (unter Verwendung von Pandas): Lesen von JSON-Daten
# Python-Grundlagen (#Numpy 1/2)
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 017 Erläuterung
# 3 [python3] Verschiedene Operatoren
# Python-Grundlagen (#Numpy 2/2)
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 026 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 016 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 024 Erläuterung
Einführungsstudie zur Python-Ausgabe von Verkaufsdaten mit tapple-
Python #Numpy Basics
Anwendung von Python: Datenverarbeitung Teil 2: Analyse verschiedener Datenformate
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 027 Erläuterung