Multi-dimensional Arrays

Creating 2D Arrays

my_array = np.array((1, 2, 3, 4))
my_array
array([1, 2, 3, 4])


list_2d = [[1, 2], [3, 4], [5, 6]]
array_2d = np.array(list_2d)
array_2d
array([[1, 2],
       [3, 4],
       [5, 6]])
np.zeros((3,4))
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])


np.random.rand(4, 2) 
array([[0.45122383, 0.78047119],
       [0.53619968, 0.37687248],
       [0.92744113, 0.13854168],
       [0.29030353, 0.85000042]])


np.arange(0,12).reshape(3,4)
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

Array Shapes

404 image
  • .ndim
  • .shape
  • .size
array1 = np.ones(4)
array1
array([1., 1., 1., 1.])


array1.ndim
1


array1.shape
(4,)


array1.size
4
array_2d = np.ones((3, 2))
array_2d
array([[1., 1.],
       [1., 1.],
       [1., 1.]])


array_2d.ndim
2


array_2d.shape
(3, 2)


array_2d.size
6
array_2d.shape
(3, 2)


len(array_2d.shape)
2


np.prod(array_2d.shape)
np.int64(6)

Indexing and Slicing 2D arrays

arr2 = np.arange(0,12).reshape(3,4)
arr2
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])


arr2[1, 2]
np.int64(6)


arr2[1][2]
np.int64(6)
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])


arr2[2]
array([ 8,  9, 10, 11])


arr2[:,2]
array([ 2,  6, 10])


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


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


arr2[1,1] = 77777
arr2
array([[    0,     1,     2,     3],
       [    4, 77777,     6,     7],
       [    8,     9,    10,    11]])

Let’s apply what we learned!