This textbook introduces the reader to Machine Learning (ML) applications in Earth Sciences. In detail, it starts by describing the basics of machine learning and its potentials in Earth Sciences to solve geological problems. It describes the main Python tools devoted to ML, the typical workflow of ML applications in Earth Sciences, and proceeds with reporting how ML algorithms work. The book provides many examples of ML application to Earth Sciences problems in many fields, such as the clustering and dimensionality reduction in petro-volcanological studies, the clustering of multi-spectral data, well-log data facies classification, and machine learning regression in petrology. Also, the book introduces the basics of parallel computing and how to scale ML models in the cloud. The book is devoted to Earth Scientists, at any level, from students to academics and professionals.