- NumPy Essentials
- Leo (Liang Huan) Chin Tanmay Dutta
- 715字
- 2021-07-16 11:16:31
Chapter 1. An Introduction to NumPy
"I'd rather do math in a general-purpose language than try to do general-purpose programming in a math language." |
||
-- John D Cook |
Python has become one of the most popular programming languages in scientific computing over the last decade. The reasons for its success are numerous, and these will gradually become apparent as you proceed with this book. Unlike many other mathematical languages, such as MATLAB, R and Mathematica, Python is a general-purpose programming language. As such, it provides a suitable framework to build scientific applications and extend them further into any commercial or academic domain. For example, consider a (somewhat) simple application that requires you to write a piece of software and predicts the popularity of a blog post. Usually, these would be the steps that you'd take to do this:
- Generating a corpus of blog posts and their corresponding ratings (assuming that the ratings here are suitably quantifiable).
- Formulating a model that generates ratings based on content and other data associated with the blog post.
- Training a model on the basis of the data you found in step 1. Keep doing this until you are confident of the reliability of the model.
- Deploying the model as a web service.
Normally, as you move through these steps, you will find yourself jumping between different software stacks. Step 1 requires a lot of web scraping. Web scraping is a very common problem, and there are tools in almost every programming language to scrape the Web (if you are already using Python, you would probably choose Beautiful Soup or Scrapy). Steps 2 and 3 involve solving a machine learning problem and require the use of sophisticated mathematical languages or frameworks, such as Weka or MATLAB, which are only a few of the vast variety of tools that provide machine learning functionality. Similarly, step 4 can be implemented in many ways using many different tools. There isn't one right answer. Since this is a problem that has been amply studied and solved (to a reasonable extent) by a lot of scientists and software developers, getting a working solution would not be difficult. However, there are issues, such as stability and scalability, that might severely restrict your choice of programming languages, web frameworks, or machine learning algorithms in each step of the problem. This is where Python wins over most other programming languages. All the preceding steps (and more) can be accomplished with only Python and a few third-party Python libraries. This flexibility and ease of developing software in Python is precisely what makes it a comfortable host for a scientific computing ecosystem. A very interesting interpretation of Python's prowess as a mature application development language can be found in Python Data Analysis, Ivan Idris, Packt Publishing. Precisely, Python is a language that is used for rapid prototyping, and it is also used to build production-quality software because of the vast scientific ecosystem it has acquired over time. The cornerstone of this ecosystem is NumPy.
Numerical Python (NumPy) is a successor to the Numeric package. It was originally written by Travis Oliphant to be the foundation of a scientific computing environment in Python. It branched off from the much wider SciPy module in early 2005 and had its first stable release in mid-2006. Since then, it has enjoyed growing popularity among Pythonists who work in the mathematics, science, and engineering fields. The goal of this book is to make you conversant enough with NumPy so that you're able to use it and can build complex scientific applications with it.
- Visual Basic .NET程序設計(第3版)
- C語言程序設計案例教程(第2版)
- Spring Boot+Spring Cloud+Vue+Element項目實戰:手把手教你開發權限管理系統
- Mastering Articulate Storyline
- VSTO開發入門教程
- Java性能權威指南(第2版)
- Visual Basic程序設計與應用實踐教程
- Kotlin Standard Library Cookbook
- SQL Server 2016數據庫應用與開發習題解答與上機指導
- 名師講壇:Spring實戰開發(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- 區塊鏈技術進階與實戰(第2版)
- C/C++數據結構與算法速學速用大辭典
- Mastering AWS Security
- Java程序設計基礎(第6版)
- ROS機器人編程實戰