PythonDataScience_01 - Jake VanderPlas Flashcards Preview

Machine Learning - Jibun > PythonDataScience_01 - Jake VanderPlas > Flashcards

Flashcards in PythonDataScience_01 - Jake VanderPlas Deck (38)
Loading flashcards...
1

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

2

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.

3

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

 

4

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)

5

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

6

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

7

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

 

8

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

 

9

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

10

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

11

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

12

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

 

13

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

 

14

Numpy

# Create a 3x3 identity matrix


np.eye(3)

 

Out[20]:

array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])

 

15

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

 

16

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

17

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

18

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

19

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

20

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

21

Wie kann ich die Elemente ab index 5 anzeigen lassen?

x[5:]  # elements after index 5

Out[18]:

array([5, 6, 7, 8, 9])

22

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

23

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

24

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

25

Wie kann ich mir die Elemente von hinten bis vorne anzeigen lassen?

x[::-1]  # all elements, reversed

Out[22]:

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

26

Wie kann ich mir die erste Reihe von x2 anzeigen lassen?

print(x2[0, :])  # first row of x2

[12  5  2  4]

 

print(x2[0])  # equivalent to x2[0, :]

27

Wie kann ich mir die erste Spalte von x2 anzeigen lassen?

print(x2[:, 0])  # first column of x2

[12  7  1]

28

Wie unterscheiden sich Python Listen und NumPy Listen?

One important–and extremely useful–thing to know about array slices is that they return views rather than copies of the array data. This is one area in which NumPy array slicing differs from Python list slicing: in lists, slices will be copies.

29

Another useful type of operation is reshaping of arrays. The most flexible way of doing this is with the reshape method. For example, if you want to put the numbers 1 through 9 in a 3×3 grid, you can do the following:

 

In [38]:

grid = np.arange(1, 10).reshape((3, 3))
print(grid)

[[1 2 3]
 [4 5 6]
 [7 8 9]]

30

Another common reshaping pattern is the conversion of a one-dimensional array into a two-dimensional row or column matrix. This can be done with the reshape method, or more easily done by making use of the newaxis keyword within a slice operation:

In [39]: x = np.array([1, 2, 3])

# row vector via reshape
x.reshape((1, 3))

Out[39]: array([[1, 2, 3]])

 

# row vector via newaxis

In [40]: x[np.newaxis, :]

Out[40]: array([[1, 2, 3]])

 

# column vector via reshape

In [41]: x.reshape((3, 1))

Out[41]:

array([[1],
       [2],
       [3]])

 

# column vector via newaxis

In [42]: x[:, np.newaxis]

Out[42]:

array([[1],
       [2],
       [3]])