PythonDataScience_01 - Jake VanderPlas Flashcards
In welcher Sprache ist Python geschrieben?
The standard Python implementation is written in C. This means that every Python object is simply a cleverly-disguised C structure, which contains not only its value, but other information as well.
This means that there is some overhead in storing an integer in Python as compared to an integer in a compiled language like C
Was kann eine Liste aus der Python-Datenstruktur speichern?
Durch dynamische Typisierung kann ich heterogene Listen erstellen mit Integern, Strings oder Boolean.
Das erhöht aber auch den Speicherbedarf, da jedes als einzelne Python-Objekt gespeichert wird.
Bei C wäre es nur ein Pointer auf einen Speicherplatz.
Wenn ich eine homogene Liste (Integer Array) erstellen möchte, was benutze ich am besten?
Das ndarray aus dem NumPy-Paket.
import numpy as np
In [8]:
integer array:
np.array([1, 4, 2, 5, 3])
Out[8]:
array([1, 4, 2, 5, 3])
Wie kann ich explizit den Datentyp in einem Numpy-Array festlegen?
Ein Array 1,2,3,4 mit Datentyp float32
In [10]:
np.array([1, 2, 3, 4], dtype=’float32’)
Out[10]:
array([1., 2., 3., 4.], dtype=float32)
Wie kann ich mit Numpy ein multidimensionales Array erstellen?
array([[2, 3, 4],
[4, 5, 6],
[6, 7, 8]])
In [11]:
nested lists result in multi-dimensional arrays
np.array([range(i, i + 3) for i in [2, 4, 6]])
Out[11]:
array([[2, 3, 4],
[4, 5, 6],
[6, 7, 8]])
Numpy: Create a length-10 integer array filled with zeros
Create a length-10 integer array filled with zeros
np.zeros(10, dtype=int)
Out[12]:
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
Numpy: Create a 3x5 floating-point array filled with ones
Create a 3x5 floating-point array filled with ones
np.ones((3, 5), dtype=float)
Out[13]:
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
Numpy: Create a 3x5 array filled with 3.14
Create a 3x5 array filled with 3.14
np.full((3, 5), 3.14)
Out[14]:
array([[3.14, 3.14, 3.14, 3.14, 3.14],
[3.14, 3.14, 3.14, 3.14, 3.14],
[3.14, 3.14, 3.14, 3.14, 3.14]])
Numpy: # Create an array filled with a linear sequence # Starting at 0, ending at 20, stepping by 2 # (this is similar to the built-in range() function)
np.arange(0, 20, 2)
Out[15]:
array([0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
Numpy: Create an array of five values evenly spaced between 0 and 1
np.linspace(0, 1, 5)
Out[16]:
array([0. , 0.25, 0.5 , 0.75, 1.])
Numpy:
Create a 3x3 array of uniformly distributed # random values between 0 and 1
np.random.random((3, 3))
Out[17]:
array([[0.99844933, 0.52183819, 0.22421193],
[0.08007488, 0.45429293, 0.20941444],
[0.14360941, 0.96910973, 0.946117]])
Numpy
Create a 3x3 array of normally distributed random values # with mean 0 and standard deviation 1
np.random.normal(0, 1, (3, 3))
Out[18]:
array([[1.51772646, 0.39614948, -0.10634696],
[0.25671348, 0.00732722, 0.37783601],
[0.68446945, 0.15926039, -0.70744073]])
Numpy
Create a 3x3 array of random integers in the interval [0, 10)
np.random.randint(0, 10, (3, 3))
Out[19]:
array([[2, 3, 4],
[5, 7, 8],
[0, 5, 0]])
Numpy
Create a 3x3 identity matrix
np.eye(3)
Out[20]:
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
Numpy
Create an uninitialized array of three integers # The values will be whatever happens to already exist at that memory location
np.empty(3)
Out[21]:
array([1., 1., 1.])
Wie kann ich ein 1-,2- und 3-Dimensionales Array x1, x2 und x3 mit Zufallszahlen bis 10 erstellen?
np.random.seed(0) # seed for reproducibility
x1 = np.random.randint(10, size=6) # One-dimensional array
x2 = np.random.randint(10, size=(3, 4)) # Two-dimensional array
x3 = np.random.randint(10, size=(3, 4, 5)) # Three-dimensional array
Each array has attributes ndim (the number of dimensions), shape (the size of each dimension), and size (the total size of the array):
Wie kann ich das von x3 anzeigen lassen?
print(“x3 ndim: “, x3.ndim)
print(“x3 shape:”, x3.shape)
print(“x3 size: “, x3.size)
x3 ndim: 3
x3 shape: (3, 4, 5)
x3 size: 60
To index from the end of the array, you can use…
In [5]:
x1
Out[5]:
array([5, 0, 3, 3, 7, 9])
To index from the end of the array, you can use negative indices:
In [8]:
x1[-1]
Out[8]:
9
In a multi-dimensional array, items can be accessed using a …
In [10]:
x2
Out[10]:
array([[3, 5, 2, 4],
[7, 6, 8, 8],
[1, 6, 7, 7]])
In a multi-dimensional array, items can be accessed using a comma-separated tuple of indices:
x2[0, 0]
Out[11]:
3
Wie kann ich die ersten 5 Elemente von array x anzeigen lassen?
x[:5] # first five elements
Out[17]:
array([0, 1, 2, 3, 4])
Wie kann ich die Elemente ab index 5 anzeigen lassen?
x[5:] # elements after index 5
Out[18]:
array([5, 6, 7, 8, 9])
Wie kann ich jedes zweite Element anzeigen lassen?
x = np.arange(10)
x
Out[16]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
x[::2] # every other element
Out[20]:
array([0, 2, 4, 6, 8])
Wie kann ich mir von array x den Index 4 bis 7 anzeigen lassen?
x[4:7] # middle sub-array
Out[19]:
array([4, 5, 6])
Wie kann ich mir jedes zweite Element anzeigen lassen? Startpunkt ist Index 1
x = np.arange(10)
x
Out[16]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
x[1::2] # every other element, starting at index 1
Out[21]:
array([1, 3, 5, 7, 9])