**Create an array from a list**

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

**Create an array with arrange**

my_array = np.arange(0, 10)
my_array2 = np.arange(0, 10, 2) # with step 2

**Create an array with zeros**

my_array = np.zeros((2, 3)) # default type if float
my_array2 = np.zeros((2, 3), np.int32) # with type int

**Create an array with ones**

my_array = np.ones((10, 8), np.int32)

**Create an array from random**

np.random.seed(101)
array1 = np.random.randint(0, 100, 10)
array2=np.random.randint(0,100,10)

**Max, Min, Mean**

np.random.seed(101)
array1 = np.random.randint(0, 100, 10)
print(array1.max())
print(array1.argmax()) # index of max value
print(array1.min())
print(array1.argmin()) # index of min value
print(array1.mean())

**Indexing an array**

matrix = np.arange(0, 100).reshape(10, 10)
print(matrix)
print(matrix[2,3])
row = 1
col = 4
print(matrix[row,col])

**Manipulating an array**

matrix = np.arange(0, 100).reshape(10, 10)
print(matrix)
matrix[0:3, 0:3] = 0
print(matrix)

**Copying an array**

matrix: np.ndarray = np.arange(0, 100).reshape(10, 10)
print(matrix)
matrix2 = matrix.copy()
matrix2[0:3, 0:3] = 0
print(matrix2)

**Slicing an array**

matrix = np.arange(0, 100).reshape(10, 10)
print(matrix[1, :]) # whole row 1
print(matrix[:, 1]) # whole col 1
print(matrix[1, 1:4]) # row 1 from col 1 to 4
print(matrix[1:4, 1]) # col 1 from row 1 to 4
new_matrix: np.ndarray = matrix[1, :]
print(new_matrix.reshape(5, 2))

**Reshaping an array**

np.random.seed(101)
array1 = np.random.randint(0, 100, 10)
print(array1)
print(array1.shape)
array2 = array1.reshape((2, 5))
print(array2)
print(array2.shape)

**References**

https://www.tutorialspoint.com/numpy/index.htm

*Related*