Build software that combines Python?s expressivity with the performance and control of C (and C++). It?s possible with Cython, the compiler and hybrid programming language used by foundational packages such as NumPy, and prominent in projects including Pandas, h5py, and scikits-learn. In this practical guide, you?ll learn how to use Cython to improve Python?s performance?up to 3000x? and to wrap C and C++ libraries in Python with ease. Author Kurt Smith takes you through Cython?s capabilities, with sample code and in-depth practice exercises. If you?re just starting with Cython, or want to go deeper, you?ll learn how this language is an essential part of any performance-oriented Python programmer?s arsenal. * Use Cython?s static typing to speed up Python code * Gain hands-on experience using Cython features to boost your numeric-heavy Python * Create new types with Cython?and see how fast object-oriented programming in Python can be * Effectively organize Cython code into separate modules and packages without sacrificing performance * Use Cython to give Pythonic interfaces to C and C++ libraries * Optimize code with Cython?s runtime and compile-time profiling tools * Use Cython?s prange function to parallelize loops transparently with OpenMP
Programming Massively Parallel Processors: A Hands-on Approach, Third Edition shows both student and professional alike the basic concepts of parallel programming and GPU architecture, exploring, in detail, various techniques for constructing parallel programs. Case studies demonstrate the development process, detailing computational thinking and ending with effective and efficient parallel programs. Topics of performance, floating-point format, parallel patterns, and dynamic parallelism are covered in-depth. For this new edition, the authors have updated their coverage of CUDA, including coverage of newer libraries, such as CuDNN, moved content that has become less important to appendices, added two new chapters on parallel patterns, and updated case studies to reflect current industry practices. Teaches computational thinking and problem-solving techniques that facilitate high-performance parallel computing Utilizes CUDA version 7.5, NVIDIA´s software development tool created specifically for massively parallel environments Contains new and updated case studies Includes coverage of newer libraries, such as CuDNN for Deep Learning
Build machine learning models, natural language processing applications, and recommender systems with PySpark to solve various business challenges. This book starts with the fundamentals of Spark and its evolution and then covers the entire spectrum of traditional machine learning algorithms along with natural language processing and recommender systems using PySpark. Machine Learning with PySpark shows you how to build supervised machine learning models such as linear regression, logistic regression, decision trees, and random forest. You´ll also see unsupervised machine learning models such as K-means and hierarchical clustering. A major portion of the book focuses on feature engineering to create useful features with PySpark to train the machine learning models. The natural language processing section covers text processing, text mining, and embedding for classification. After reading this book, you will understand how to use PySpark´s machine learning library to build and train various machine learning models. Additionally you´ll become comfortable with related PySpark components, such as data ingestion, data processing, and data analysis, that you can use to develop data-driven intelligent applications. What You Will Learn Build a spectrum of supervised and unsupervised machine learning algorithms Implement machine learning algorithms with Spark MLlib libraries Develop a recommender system with Spark MLlib libraries Handle issues related to feature engineering, class balance, bias and variance, and cross validation for building an optimal fit model Who This Book Is For Data science and machine learning professionals.
Real agilists don´t weigh themselves down with libraries of books, they keep their important information handy with them at all times. Jeff and Tim pack over two decades of experience coaching and doing agile into Agile in a Flash, a unique deck of index cards that fit neatly in your pocket and tack easily onto the wall. Agile in a Flash cards run the gamut of agile, covering customer, planning, team, and developer concepts to help you succeed on agile projects. You can use cards from the deck in many ways: as references, reminders, teaching tools, and conversation pieces. Why not get sets for your entire team or organization? This comprehensive set of cards is an indispensable resource for agile teams. The deck of Agile in a Flash cards teaches leadership, teamwork, clean programming, agile approaches to problem solving, and tips for coaching agile teams. Team members can use the cards as reference material, ice breakers for conversations, reminders (taped to a wall or monitor), and sources of useful tips and hard-won wisdom. The cards are: Bite-sized! Read one practice or aspect at a time in a couple of minutes. Smart! Each card has years of practical experience behind it. Portable! Cards fit easily in your pocket or backpack. An indispensable tool for any agile team, and a must-have for every agile coach or Scrum Master. The Agile in a Flash deck is broken into four areas: planning, team, coding, and agile concepts. The front of each card is a quick list - a summary of the things you want to know and remember. The back provides further detail on each of the bullet points, and offers sage nuggets of knowledge based on extensive professional experience. Tape the cards to your wall, stick them on your monitor, and get agile fast.
Learn to harness the power of AI for natural language processing, performing tasks such as spell check, text summarization, document classification, and natural language generation. Along the way, you will learn the skills to implement these methods in larger infrastructures to replace existing code or create new algorithms. Applied Natural Language Processing with Python starts with reviewing the necessary machine learning concepts before moving onto discussing various NLP problems. After reading this book, you will have the skills to apply these concepts in your own professional environment. What You Will Learn Utilize various machine learning and natural language processing libraries such as TensorFlow, Keras, NLTK, and Gensim Manipulate and preprocess raw text data in formats such as .txt and .pdf Strengthen your skills in data science by learning both the theory and the application of various algorithms Who This Book Is For You should be at least a beginner in ML to get the most out of this text, but you needn´t feel that you need be an expert to understand the content.
Algorithms are at the heart of every nontrivial computer application, and algorithmics is a modern and active area of computer science. Every computer scientist and every professional programmer should know about the basic algorithmic toolbox: structures that allow efficient organization and retrieval of data, frequently used algorithms, and basic techniques for modeling, understanding and solving algorithmic problems. This book is a concise introduction addressed to students and professionals familiar with programming and basic mathematical language. Individual chapters cover arrays and linked lists, hash tables and associative arrays, sorting and selection, priority queues, sorted sequences, graph representation, graph traversal, shortest paths, minimum spanning trees, and optimization. The algorithms are presented in a modern way, with explicitly formulated invariants, and comment on recent trends such as algorithm engineering, memory hierarchies, algorithm libraries and certifying algorithms. The authors use pictures, words and high-level pseudocode to explain the algorithms, and then they present more detail on efficient implementations using real programming languages like C++ and Java. The authors have extensive experience teaching these subjects to undergraduates and graduates, and they offer a clear presentation, with examples, pictures, informal explanations, exercises, and some linkage to the real world. Most chapters have the same basic structure: a motivation for the problem, comments on the most important applications, and then simple solutions presented as informally as possible and as formally as necessary. For the more advanced issues, this approach leads to a more mathematical treatment, including some theorems and proofs. Finally, each chapter concludes with a section on further findings, providing views on the state of research, generalizations and advanced solutions.