diff --git a/30-days-of-python/24_Estadísticas/01_stats.py b/30-days-of-python/24_Estadísticas/01_stats.py new file mode 100644 index 0000000..b9283a3 --- /dev/null +++ b/30-days-of-python/24_Estadísticas/01_stats.py @@ -0,0 +1,358 @@ +""" +01_stats.py +""" + +import numpy as np + +# Info numpy +print('numpy version:', np.__version__) +print() + +print(dir(np)) +print() + +# Creating int numpy arrays + +python_list = [1, 2, 3, 4, 5] + +print('Type: ', type(python_list)) + +two_dimensional_list = [[0, 1, 2], [3, 4, 5], [6, 7, 8]] + +print(two_dimensional_list) + +numpy_array_from_list = np.array(python_list) +print(type(numpy_array_from_list)) + +print(numpy_array_from_list) + +print() + +# Creating float numpy arrays + +python_list = [1, 2, 3, 4, 5] + +numy_array_from_list2 = np.array(python_list, dtype=float) +print(numy_array_from_list2) + +print() + +# Creating boolean numpy arrays + +numpy_bool_array = np.array([0, 1, -1, 0, 0], dtype=bool) +print(numpy_bool_array) + +print() + +# Creating multidimensional array using numpy + +numpy_two_dimensional_list = np.array(two_dimensional_list) +print(type(numpy_two_dimensional_list)) +print(numpy_two_dimensional_list) + +print() + +# Converting numpy array to list + +np_to_list = numpy_array_from_list.tolist() +print(type(np_to_list)) +print('one dimensional array:', np_to_list) +print('two dimensional array: ', numpy_two_dimensional_list.tolist()) + +print() + +# Creating numpy array from tuple + +python_tuple = (1, 2, 3, 4, 5) +print(type(python_tuple)) +print('python_tuple: ', python_tuple) + +numpy_array_from_tuple = np.array(python_tuple) +print(type(numpy_array_from_tuple)) +print('numpy_array_from_tuple: ', numpy_array_from_tuple) + +print() + +# Shape of numpy array +nums = np.array([1, 2, 3, 4, 5]) +print(nums) +print('shape of nums: ', nums.shape) +print(numpy_two_dimensional_list) +print('shape of numpy_two_dimensional_list: ', + numpy_two_dimensional_list.shape) +three_by_four_array = np.array([[0, 1, 2, 3], + [4, 5, 6, 7], + [8, 9, 10, 11]]) +print(three_by_four_array.shape) + +print() + +# Data type of numpy array + +int_lists = [-3, -2, -1, 0, 1, 2, 3] +int_array = np.array(int_lists) +float_array = np.array(int_lists, dtype=float) + +print(int_array) +print(int_array.dtype) +print(float_array) +print(float_array.dtype) + +print() + +# Size of a numpy array + +numpy_array_from_list = np.array([1, 2, 3, 4, 5]) +two_dimensional_list = np.array([[0, 1, 2], + [3, 4, 5], + [6, 7, 8]]) + +print('The size:', numpy_array_from_list.size) +print('The size:', two_dimensional_list.size) + +print() + +# Mathematical Operation using numpy + +# Addition +print('original array: ', numpy_array_from_list) +ten_plus_original = numpy_array_from_list + 10 +print(ten_plus_original) + +print() + +# Subtraction +print('original array: ', numpy_array_from_list) +ten_minus_original = numpy_array_from_list - 10 +print(ten_minus_original) + +print() + +# Multiplication +print('original array: ', numpy_array_from_list) +ten_times_original = numpy_array_from_list * 10 +print(ten_times_original) + +print() + +# Division +print('original array: ', numpy_array_from_list) +ten_times_original = numpy_array_from_list / 10 +print(ten_times_original) + +print() + +# Modulus +print('original array: ', numpy_array_from_list) +ten_times_original = numpy_array_from_list % 3 +print(ten_times_original) + +print() + +# Floor division +print('original array: ', numpy_array_from_list) +ten_times_original = numpy_array_from_list // 10 +print(ten_times_original) + +print() + +# Exponential +print('original array: ', numpy_array_from_list) +ten_times_original = numpy_array_from_list ** 2 +print(ten_times_original) + +print() + +# Int, Float numbers +numpy_int_arr = np.array([1, 2, 3, 4]) +numpy_float_arr = np.array([1.1, 2.0, 3.2]) +numpy_bool_arr = np.array([-3, -2, 0, 1, 2, 3], dtype='bool') + +print(numpy_int_arr.dtype) +print(numpy_float_arr.dtype) +print(numpy_bool_arr.dtype) + +print() + +# Converting types + +# int to float +numpy_int_arr = np.array([1, 2, 3, 4], dtype='float') +print(numpy_int_arr) + +print() + +# float to int +numpy_int_arr = np.array(numpy_int_arr, dtype='int') +print(numpy_int_arr) + +print() + +# float to bool +numpy_int_arr = np.array([-3, -2, 0, 1, 2, 3], dtype='bool') +print(numpy_int_arr) + +print() + +# int to str + +numpy_int_arr = np.array([1, 2, 3, 4], dtype='str') +print(numpy_int_arr) + +print() + +# Multi-dimensional Arrays + +# 2 Dimension Array +two_dimension_array = np.array([ + (1, 2, 3), + (4, 5, 6), + (7, 8, 9) +]) +print(type(two_dimension_array)) +print(two_dimension_array) +print('Shape: ', two_dimension_array.shape) +print('Size:', two_dimension_array.size) +print('Data type:', two_dimension_array.dtype) + +print() + +# Getting items from a numpy array + +# 2 Dimension Array +two_dimension_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) +first_row = two_dimension_array[0] +second_row = two_dimension_array[1] +third_row = two_dimension_array[2] +print('First row:', first_row) +print('Second row:', second_row) +print('Third row: ', third_row) + +print() + +first_column = two_dimension_array[:, 0] +second_column = two_dimension_array[:, 1] +third_column = two_dimension_array[:, 2] +print('First column:', first_column) +print('Second column:', second_column) +print('Third column: ', third_column) +print(two_dimension_array) + +print() + +# Slicing Numpy array + +first_two_rows_and_columns = two_dimension_array[0:2, 0:2] +print(first_two_rows_and_columns) + +print() + +# How to reverse the rows and the whole array? + +print(two_dimension_array[::]) + +print() + +# Reverse the row and column positions + +print(two_dimension_array[::-1, ::-1]) + +print() + +# How to represent missing values ? +print(two_dimension_array) +two_dimension_array[1, 1] = 55 +two_dimension_array[1, 2] = 44 +print(two_dimension_array) + +print() + +# Numpy Zeroes +# numpy.zeros(shape, dtype=float, order='C') +numpy_zeroes = np.zeros((3, 3), dtype=int, order='C') +print(numpy_zeroes) + +print() + + +# Numpy Zeroes +numpy_ones = np.ones((3, 3), dtype=int, order='C') +print(numpy_ones) + +print() + +twoes = numpy_ones * 2 + +print(twoes) + +print() + +# Reshape +# numpy.reshape(), numpy.flatten() +first_shape = np.array([(1, 2, 3), (4, 5, 6)]) +print(first_shape) +reshaped = first_shape.reshape(3, 2) +print(reshaped) + +print() + +flattened = reshaped.flatten() +print(flattened) + +print() + +# Horitzontal Stack +np_list_one = np.array([1, 2, 3]) +np_list_two = np.array([4, 5, 6]) + +print(np_list_one + np_list_two) + +print('Horizontal Append:', np.hstack((np_list_one, np_list_two))) + +print() + +# Vertical Stack +print('Vertical Append:', np.vstack((np_list_one, np_list_two))) + +print() + +# Generating Random Numbers + +# Generate a random float number +random_float = np.random.random() +print(random_float) + +print() + +# Generate a random float number +random_floats = np.random.random(5) +print(random_floats) + +print() + +# Generating a random integers between 0 and 10 + +random_int = np.random.randint(0, 11) +print(random_int) + +print() + +# Generating a random integers between 2 and 11, and creating a one row array +random_int = np.random.randint(2, 10, size=4) +print(random_int) + +print() + +# Generating a random integers between 0 and 10 +random_int = np.random.randint(2, 10, size=(3, 3)) +print(random_int) + +print() + +# Generationg random numbers + +# np.random.normal(mu, sigma, size) +normal_array = np.random.normal(79, 15, 80) +print(normal_array) + +print() diff --git a/30-days-of-python/24_Estadísticas/README.md b/30-days-of-python/24_Estadísticas/README.md index b413c9b..5abddd1 100644 --- a/30-days-of-python/24_Estadísticas/README.md +++ b/30-days-of-python/24_Estadísticas/README.md @@ -6,4 +6,6 @@ Documento original en inglés: [statistics](https://github.com/Asabeneh/30-Days- 1. Repite todos los [ejemplos](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/24_Day_Statistics/24_statistics.md) +[Solución 01](01_stats.py) + [<< Day 23](../23_Entorno_virtual/README.md) | [Day 25 >>](../25_Pandas/README.md)