zoukankan      html  css  js  c++  java
  • NumPy 上手一个例子 vectorsum.py

      NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。NumPy本身用C实现。

      翻了一下PACKT出版社的学习指南,第一章有一个对比计算效率的例子拿来作为上手。

      结果是,在本机32bit的python上跑出来的效果跟书上相差很多,首先是32bit的python整形上限跟64bit相差很多:

    >>> sys.maxsize
    2147483647

    另外还有就是datetime计时精读存在问题。

    不管怎样,就当是尝试一把吧,

    代码在下面,问题解决  stackoverflow

    #-*- coding:utf-8 -*-
    import sys
    from datetime import datetime
    import numpy as np
    """
     Input format:  python vectorsum.py n
     n: the excepted size for the vector
    """
    
    def numpsysum(n):
        a = np.arange(n) ** 2
        b = np.arange(n) ** 3
        c = a + b
        return c
        
    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
            
    size = int(sys.argv[1])
    start = datetime.now()
    c = pythonsum(size)
    delta = datetime.now() - start
    print "The last 2 elements of the pythonsum is:",c[-2:]
    print "Python method cost time : ",delta.microseconds
    start = datetime.now()
    c = numpsysum(size)
    delta = datetime.now() - start
    print "The last 2 elements of the numpysum is:",c[-2:]
    print "NumPy method cost time : ",delta.microseconds

    暂时没有大规模处理的需求。留念~

    注:Linux上自带的python maxsize是 9223372036854775807

  • 相关阅读:
    全选、全不选、反选
    IE Tester 怎样使用firebug 调试工具?
    策略模式
    模板方法模式
    迭代器模式——android中使用
    android 实现圆形波纹动画
    android 窗口的使用
    AlertDialog 基本使用
    国外android 网站
    ViewDragHelper 任意拖动
  • 原文地址:https://www.cnblogs.com/learn-to-rock/p/5444810.html
Copyright © 2011-2022 走看看