In [1]:
import numpy as np
In [2]:
arr = np.arange(0,11)
In [3]:
arr
Out[3]:
In [4]:
arr[8]
Out[4]:
In [5]:
arr[1:5]
Out[5]:
In [6]:
arr[:6]
Out[6]:
In [10]:
arr[0:5] = 100
In [8]:
arr
Out[8]:
In [9]:
arr = np.arange(0,11)
In [11]:
slice_of_arr = arr[:6]
In [12]:
slice_of_arr[:] = 99
In [16]:
arr # it's linked! slice_of_arr is just a view of the original array.
Out[16]:
In [21]:
arr_copy = arr.copy() # this actually copies to a new array instead of linking
In [18]:
arr_copy[:] = 100
In [19]:
arr_copy
Out[19]:
In [20]:
arr
Out[20]:
In [25]:
arr_2d = np.array([[5,10,15],[20,25,30],[35,40,45]])
arr_2d
Out[25]:
In [27]:
arr_2d[2][1] # double-bracket index notation
Out[27]:
In [29]:
arr_2d[2,1] # single-bracket index notation
Out[29]:
In [30]:
arr_2d[:2,1:]
Out[30]:
In [31]:
arr_2d[1:,:]
Out[31]:
In [34]:
arr_2d_big = np.array([[5,10,15,20],[25,30,35,40],[45,50,55,60],[65,70,75,80]])
In [38]:
arr_2d_big[1:3,1:3] # centerpunch the shit out of this new array
Out[38]:
In [40]:
arr = np.arange(1,11)
arr
Out[40]:
In [44]:
bool_arr = arr > 5
bool_arr # whaaaaat
Out[44]:
In [47]:
arr[bool_arr] # mind: blown
Out[47]:
the one-liner way:
In [48]:
arr[arr>5]
Out[48]:
In [49]:
arr[arr<3]
Out[49]:
In [50]:
arr_2d = np.arange(50).reshape(5,10)
In [51]:
arr_2d
Out[51]:
In [52]:
arr_2d[1:3,3:5]
Out[52]:
In [ ]: