Privates Memo.
Jupyter
jupyter_contrib_nbextensions
ist für die PDF-Ausgabe, die später beschrieben wird, und für die Fertigstellung in Jupyter enthalten und nicht unbedingt erforderlich.
pip install jupyter jupyter_contrib_nbextensions
pip install matplotlib numpy #Fügen Sie weitere erforderliche Elemente hinzu
Ich dachte, es wäre besser in VSCode als im Browser, aber ich habe doch nicht gewechselt.
jupyter notebook --ip=127.0.0.1 --allow-root
Sie können das Modul "jupyterthemes" einfügen oder selbst mit "~ / .jupyter / custom / custom.css" spielen.
Im ersteren Fall
Ich verwende https://gist.github.com/7ma7X/54f5e0b60e39ae8826bfcc580d524e40 als custom.css.
jupyter nbconvert hoge.ipynb --to pdf
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
numpy
x = np.array([
[1, 2, 1, 9, 10, 3, 2, 6, 7],
[2, 1, 8, 3, 7, 5, 10, 7, 2]])
np.corrcoef(x)
Da der Rückgabewert eine Korrelationskoeffizientenmatrix ist, überprüfen Sie das Element (1, 2) (oder (2, 1)).
Es gibt Argmax und Argmin.
np.argmax(arr)
Es ist in Ordnung, es in Listeneinschlussnotation zu machen, aber es gibt np.arange
.
np.arange(5)
# array([0, 1, 2, 3, 4])
np.arange(3, 10, 2)
# array([3, 5, 7, 9])
np.linspace(2.0, 3.0, num=5)
# array([2. , 2.25, 2.5 , 2.75, 3. ])
np.logspace(3, 7, num=5, base=2)
# array([8, 16, 32, 64, 128])
Beachten Sie, dass das Argument ein Taple ist
np.zeros((3, 4))
Es gibt auch ein np.ones
, das alle Elemente mit 1 initialisiert.
Beide sind np.dot
np.dot(A, B)
Es ist verwirrend, daher sollten Sie sich https://note.nkmk.me/python-numpy-concatenate-stack-block/ ansehen. Es gibt eine Theorie, dass es besser ist, "numpy.stack" zu verwenden.
v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])
np.concatenate([v1, v2])
# [1 2 3 4 5 6]
Beachten Sie, dass das gesamte Argument eine Liste sein muss
np.ravel
ist schneller als die eingebaute Abflachung
.
x = np.array([[1, 2, 3], [4, 5, 6]])
np.ravel(x)
# array([1, 2, 3, 4, 5, 6])
Normalerweise werden 2 Normen verwendet
np.linalg.norm(X)
np.linalg.norm(X,ord=1) #1 Norm
Übrigens entspricht np.linalg.norm
auch der Matrixnorm [^ 2].
Schreiben Sie wie mat [:, 2]
mat =\
[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]
mat[:,2]
# array([ 2, 12, 22, 32, 42, 52, 62, 72, 82, 92])
test = np.array([1, 2, 3, 4, 5])
np.delete(test, [1, 3])
# array([1, 3, 5])
** Kann nicht als Slice gelöscht werden! !! ** ** **
np.identity(5)
np.eye(5)
Ist beides okay.
np.linalg.inv(A)
A.T
np.linalg.det(A)
Funktion | Erläuterung |
---|---|
np.linalg.eig | Echter Wert / Eigenvektor der allgemeinen Matrix |
np.linalg.eigh | Elmeat oder Eigenwert / Eigenvektor der reellen symmetrischen Matrix |
np.linalg.eigvals | Eindeutiger Wert der allgemeinen Matrix (Berechnet keinen Eigenvektor) |
np.linalg.eigvalsh | Elmeat oder Eigenwert der realen symmetrischen Matrix (Berechnet keinen Eigenvektor) |
Da sich der Algorithmus zum Ermitteln des Eigenwerts in der symmetrischen Matrix von der allgemeinen Matrix unterscheidet, ** verwenden Sie für die Genauigkeit ** eigh und eigvalsh in der symmetrischen Matrix **.
Bei der Methode, die sowohl den Eigenwert als auch den Eigenvektor erhält, wird der Rückgabewert als Taple von "(Eigenwert, Eigenvektor)" zurückgegeben.
np.random.normal(size = 1000000)
np.random.normal(loc=1.0, scale=2.0, size=20)
Verwenden Sie für die multivariate Normalverteilung "multivariate_normal"
mean = (1, 2)
cov = [[1, 0], [0, 1]]
np.random.multivariate_normal(mean, cov, 100)
np.random.uniform(size = 1000000)
np.random.uniform(low=1.0, high=2.0, size=20)
np.random.chisquare(2, 10000)
a = np.array([[3,1], [1,2]])
b = np.array([9,8])
np.linalg.solve(a, b)
# array([2., 3.])
Beispiel: Transformieren einer (1, 12) Größenmatrix in (3, 4) Größe.
a = array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
np.reshape(a, (3, 4))
# array([[ 0, 1, 2, 3],
# [ 4, 5, 6, 7],
# [ 8, 9, 10, 11]])
In der numerischen Analyse ein Wert, der ein Index für die Fehleranfälligkeit ist (man kann sagen, dass ein großer Wert fehleranfällig ist).
np.linalg.cond(A, 2)
matplotlib
plt.figure(figsize=(8, 6)) #Horizontale 8 x vertikale 6 Grafik
plt.title("This is title.") #Geben Sie dem Diagramm einen Titel
#Benennen Sie die Achse
plt.xlabel("Anzahl von Versuchen")
#Ändern Sie den Bereich der Achse
plt.ylim(0, 2.5)
# label=In der Legende Farbe=Mit Farbe, Linestyle=Ändern Sie den Linienstil mit
plt.plot(X, Y, label="one")
plt.plot(X2, Y2, label="two")
plt.legend()
plt.show()
plt.yscale('log')
Die y-Achse wird zur logarithmischen Skala.
plt.hist(x, bins=100)
Bins
ist die Anzahl der Bins (Anzahl der Klassen)
plt.scatter(x, y, marker='x', c='red')
x = np.linspace(-1, 1, 100)
y = np.linspace(-1, 1, 100)
X, Y = np.meshgrid(x, y)
Z = np.sqrt(X**2 + Y**2)
plt.contour(X, Y, Z)
plt.gca().set_aspect('equal')
names = ['Alice', 'Bob', 'Charlie']
ages = [24, 50, 18]
for name, age in zip(names, ages):
print(name, age)
# Alice 24
# Bob 50
# Charlie 18
l = ['Alice', 'Bob', 'Charlie']
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
print("i={} lambda={} x={}".format(i, l, x))
Allgemeine Funktionen finden Sie normalerweise im Modul math
, auch wenn sie nicht von numpy stammen. Weitere Informationen finden Sie unter https://docs.python.org/ja/3/library/math.html
from math import sin, cos, pi, exp
Recommended Posts