码迷,mamicode.com
首页 > 其他好文 > 详细

1.1.1.3、简单例子

时间:2020-02-05 18:30:37      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:简单的   数据存储   大小   编码   简单例子   速度   示例   操作   pen   

简单例子

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 的两个特性:矢量化和传播性。

1.1.1.3、简单例子

标签:简单的   数据存储   大小   编码   简单例子   速度   示例   操作   pen   

原文地址:https://www.cnblogs.com/wdzn/p/12264593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!