Numpy学习笔记一、Why Numpy?
前言:
Numpy是Python进行高性能数值计算的核心工具。我们普通的开发者只是需要了解Numpy的数据结构,会使用常规的切片和索引,调用封装好的函数,即可解决大部分工作场景。可为什么使用Numpy,因为其高效性,可以直接处理数组和矩阵,省略很多循环语句,那为什么Numpy的array那么快? Numpy是怎么做到的?
阅读目录:
一、Numpy是什么?
二、为什么选择Numpy?
三、 Numpy的向量化语句为什么比Python的for循环快?
一、 Numpy是什么?
NumPy,既Numeric Python的缩写,是一个优秀的开源科学计算库,并已经成为Python科学计算生态系统的重要组成部分。Numpy为我们提供了丰富的数学函数、强大的多维数组对象以及优异的运算性能。使用Numpy就可以很自然的地使用数组和矩阵。
尽管Python作为流行的编程语言非常灵活易用,但它本身并非为科学计算量身定做,在开发效率和执行效率上均不适合直接用于数据分析,尤其是大数据的分析和处理。幸运的是,Numpy为Python插上了翅膀,在保留Python语言优势的同时大大增强了科学计算和数据处理的能力。更重要的是,Numpy与Scipy、Matplotlib、Scikits等众多Python科学计算库很好结合在一起,共同构建了一个完整的科学计算生态系统,Numpy是使用Python进行数据分析的一个核心工具。
二、 为什么选择Numpy?
对于同样的数值计算任务,使用Numpy要直接编写Python代码便捷得多。这是因为Numpy能够直接对数组和矩阵进行操作,可以省略很多循环语句,其众多的数学函数会让编写代码的工作轻松很多。
Numpy在数组操作上的效率优于纯Python代码,那么究竟快多少呢?下面是一段测试代码:
#2、测试Numpy在数组操作上的效率优于纯Python代码
#!/usr/bin/env/python
import sys
from datetime import datetime
import numpy as np
def pythonsum(n):
a = range(n)
b = range(n)
c = []
for i in range(len(a)):
a[i] = i ** 2
b[i] = i ** 3
c.append(a[i] + b[i])
return c