ndarray的优势

编程之家收集整理的这篇文章主要介绍了ndarray的优势编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

内存块风格 ndarray到底跟原生python列表有什么不同呢,请看一张图: 从图中我们可以看出ndarray在存储数据的时候,数据与数据的地址都是连续的,这样就给使得批量操作数组元素时速度更快。

内存块风格

ndarray到底跟原生python列表有什么不同呢,请看一张图:

 

从图中我们可以看出ndarray在存储数据的时候,数据与数据的地址都是连续的,这样就给使得批量操作数组元素时速度更快。

这是因为ndarray中的所有元素的类型都是相同的,而python列表中的元素类型是任意的,所以ndarray在存储元素时内存可以连续,而python原生List就只能通过寻址方式找到下一个元素,这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生List,但在科学计算中,Numpy的ndarray就可以省掉很多循环语句,代码使用方面比Python原生List简单的多。

ndarray支持并行化运算(向量化运算)

numpy内置了并行运算功能,当系统有多个核心时,做某种计算时,numpy会自动做并行计算

效率远高于纯Python代码

Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,所以,其效率远高于纯Python代码

总结

以上是编程之家为你收集整理的ndarray的优势全部内容,希望文章能够帮你解决ndarray的优势所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

NumPy文章

内存块风格 ndarray到底跟原生python列表有什么不同呢,请看一张图: 从图中我们可以看出ndarray在存储数据的时候,数据与数据的地址都是连续的,这样就给使得批量操作数组元素时速度更快。
6 替换array中的元素,并赋值给新的array 例如: 输入arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 输出out为array([ 0, -1,
11 找到两个array中的通用项,并保存在新的array中 例如:输入a = np.array([1,2,3,2,3,4,3,4,5,6]),b = np.array([7,2,10,2,7,4,9
待续。。。
NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目ndarray 中的每个元素在内存中使用相同大小的块。 ndarray 中的每个元素是数据类型对象的对象(称为 dtype)ndarray 原型:numpy.array(object, dtype=None, copy=True, order=None...
bool_存储为一个字节的布尔值(真或假)int_默认整数, 相当于 C 的long, 通常为int32或int64intc相当于 C 的int, 通常为int32或int64intp用于索引的整数, 相当于 C 的size_t, 通常为int32或int64int8字节(-128 ~ 127)int16 16 位整数(-32768 ~ 32767)int3...
numpy.empty 创建指定形状和dtype的未初始化数组numpy.empty(shape, dtype = float, order = 'C')Shape 空数组的形状,整数或整数元组Dtype 所需的输出数组类型,可选Order 'C’为按行的 C 风格数组,'F’为按列的 Fortran 风格数组下面的代码展示空数组的例子,因为它们未初始化,所以数组元素默...
numpy.asarray 此函数类似于numpy.array,它有较少的参数numpy.asarray(a, dtype = None, order = None)a 任意形式的输入参数,比如列表、列表的元组、元组、元组的元组、元组的列表dtype 通常,输入数据的类型会应用到返回的 ndarrayorder ‘C’ 为按行的 C 风格数组,‘F’ 为按列的 Fortran...
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注