zoukankan      html  css  js  c++  java
  • 1.1.1.3、简单例子

    目录 # 简单例子

    1、使用 Python 的列表

    在科学计算中,关于序列大小和速度的问题尤为重要。

    作为一个简单的例子,有两个相同长度的序列,将前一序列与后一序列中的相应元素相乘。

    如果数据存储在两个 Python 列表 ab 中,则可以遍历每个元素:

    c = []
    for i in range(len(a)):
        c.append(a[i] * b[i])
    

    2、C 语言加速

    例 1 中获得了正确的答案,但是如果 ab 都包含数百万个数字,则 Python 是低效的。

    可以通过 C 语言加快处理的速度:

    for (i = 0; i < rows; i++):{
        c[i] = a[i] * b[i];
    }
    

    3、C 语言处理二维数组

    例 2 节省了解释 Python 代码和操作 Python 对象所需的所有开销,但牺牲了使用 Python 编写代码的好处。

    此外,所需的编码工作随着数据维数的增加而增加。

    例如,在二维数组的情况下,C 语言代码将变为:

    for (i = 0; i < rows; i++):{
        for (j = 0;j < columns; j++):{
            c[i][j] = a[i][j] * b[i][j];
        }
    }
    

    4、使用 NumPy

    NumPy 比上面更好:当涉及 ndarray 时,元素之间的操作是默认的,这个操作由预编译的 C 代码快速执行。

    例如:

    c = a * b
    

    以接近 C 的速度执行前面示例的所有操作,但是从 Python 中获得了代码的简单性。

    此展现了 NumPy 的两个特性:矢量化和传播性。

    转载请声明https://www.cnblogs.com/wdzn/
  • 相关阅读:
    JAVA——汉诺塔
    JAVA与MySQL连接并显示、管理表格实例
    2019沈阳网选——模拟
    CodeforcesRound#553(Div. 2)(A-D题解)
    CodeforcesRound#551(Div. 2)(A-C题解)
    CodeforcesGlobalRound2(Div.2)ABCE题解
    EducationalCodeforcesRound62(Div. 2)(A-D题解)
    博客搬家
    文本分类基本流程
    卡方检验应用-特征选择
  • 原文地址:https://www.cnblogs.com/wdzn/p/12264593.html
Copyright © 2011-2022 走看看