2.NumPy简介

一:NumPy简介

  • 官网链接:http://www.numpy.org/

  • NumPy教程链接:https://www.yiibai.com/numpy/

  • NumPy是Python语言的一个扩充程序库。支持高级大量的多维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库

  NumPy – MatLab 的替代之一

  NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用。 这种组合广泛用于替代 MatLab,是一个流行的技术计算平台。

  但是,Python 作为 MatLab 的替代方案,现在被视为一种更加现代和完整的编程语言。

二:NumPy基本功能  

  • 快速高效的多维数组对象ndarray

  • 用于对数组执行元素级计算以及直接对数组执行数学运算的函数

  • 用于读写硬盘上基于数组的数据集的

  • 线性代数运算、傅里叶变换,以及随机数生成

  • 傅立叶变换和用于图形操作的例程。

  • 与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。

三:效率对比

  • 三种数据结构:list / array / numpy.array

  • 三种方法求和:for / sum / numpy.sum

import timeit
common_for = """
for d in data:
    s += d
"""

common_sum = """
sum(data)
"""

common_numpy_sum = """
numpy.sum(data)
"""

def timeit_list(n, loops):
    list_setup = """
import numpy
data = [1] * {}
s = 0
""".format(n)
    print 'list:'
    print timeit.timeit(common_for, list_setup, number = loops)
    print timeit.timeit(common_sum, list_setup, number = loops)
    print timeit.timeit(common_numpy_sum, list_setup, number = loops)

def timeit_array(n, loops):
    array_setup = """
import numpy
import array
data = array.array('L', [1] * {})
s = 0
""".format(n)
    print 'array:'
    print timeit.timeit(common_for, array_setup, number = loops)
    print timeit.timeit(common_sum, array_setup, number = loops)
    print timeit.timeit(common_numpy_sum, array_setup, number = loops)

def timeit_numpy(n, loops):
    numpy_setup = """
import numpy
data = numpy.array([1] * {})
s = 0
""".format(n)
    print 'numpy:'
    print timeit.timeit(common_for, numpy_setup, number = loops)
    print timeit.timeit(common_sum, numpy_setup, number = loops)
    print timeit.timeit(common_numpy_sum, numpy_setup, number = loops)

if __name__ == '__main__':
    timeit_list(50000, 500)
    timeit_array(50000, 500)
    timeit_numpy(50000, 500)

运行结果:

list:
0.94836021896
0.126542218145
1.25408217549
array:
2.02870422344
1.4137293358
5.92805967058
numpy:
3.81213793067
2.90964482707
0.0174179931709

四:NumPy的Ndarray对象(N 维数组类型

  基本的ndarray是使用 NumPy 中的数组函数创建的,如下所示:

   

  它从任何暴露数组接口的对象,或从返回数组的任何方法创建一个ndarray。

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

  上面的构造器接受以下参数:

  

序号 参数及描述
1. object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。
2. dtype 数组的所需数据类型,可选。
3. copy 可选,默认为true,对象是否被复制。
4. order C(按行)、F(按列)或A(任意,默认)。
5. subok 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类。
6. ndimin 指定返回数组的最小维数。

  


 


  

  

猜你喜欢

转载自www.cnblogs.com/yaboya/p/9070353.html
今日推荐