最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python numpy是什么

    正文概述    2020-03-29   245

    python numpy是什么

    NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种例程,包括数学,逻辑,形状操作,排序,选择,I / O离散傅立叶变换,基本线性代数,基本统计运算,随机模拟等等。

    NumPy包的核心是ndarray对象。这封装了同构数据类型的n维数组,许多操作在编译代码中执行以提高性能。NumPy数组和标准Python序列之间有几个重要的区别:

    ·NumPy数组在创建时具有固定大小,与Python列表(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原始数组。

    ·NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。例外:可以有(Python,包括NumPy)对象的数组,从而允许不同大小的元素的数组。

    ·NumPy数组有助于对大量数据进行高级数学和其他类型的操作。通常,与使用Python的内置序列相比,这些操作的执行效率更高,代码更少。

    ·越来越多的基于Python的科学和数学软件包正在使用NumPy数组; 虽然这些通常支持Python序列输入,但它们在处理之前将这些输入转换为NumPy数组,并且它们通常输出NumPy数组。换句话说,为了有效地使用当今大量(甚至大多数)基于Python的科学/数学软件,只知道如何使用Python的内置序列类型是不够的 - 还需要知道如何使用NumPy数组。

    关于序列大小和速度的要点在科学计算中尤为重要。作为一个简单的例子,考虑将1-D序列中的每个元素与相同长度的另一个序列中的相应元素相乘的情况。如果数据被存储在两个Python列表,a并且b,我们可以遍历每个元素:

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

    这产生了正确的答案,但如果a且b每个包含数百万个数字,我们将为Python中循环的低效率付出代价。我们可以通过写入在C中更快地完成相同的任务(为了清楚起见,我们忽略了变量声明和初始化,内存分配等)

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

    这节省了解释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];
      }
    }

    NumPy为我们提供了两全其美:当涉及到ndarray时,逐个元素的操作是“默认模式” ,但逐个元素的操作由预编译的C代码快速执行。在NumPy

    c = a * b

    以近C速度执行前面的示例所做的事情,但是我们期望基于Python的代码具有简单性。的确,NumPy成语更简单!最后一个例子说明了NumPy的两个特征,它们是它的大部分功能的基础:矢量化和广播。

    Vectorization描述了代码中没有任何显式循环,索引等 - 这些事情当然只是在优化的,预编译的C代码中“幕后”。矢量化代码有许多优点,其中包括:

    ·矢量化代码更简洁,更易于阅读

    ·更少的代码行通常意味着更少的错误

    ·代码更接近于标准的数学符号(通常,更容易,正确编码数学结构)

    ·矢量化导致更多“Pythonic”代码。如果没有矢量化,我们的代码就会被低效且难以阅读的for循环所困扰。

    广播是用于描述操作的隐式逐元素行为的术语;一般来说,在NumPy中,所有操作,不仅仅是算术运算,而是逻辑,位,功能等,都以这种隐式的逐元素方式表现,即它们进行广播。此外,在上面的例子中,a并且b可以是相同形状的多维阵列,或者标量和阵列,或者甚至是具有不同形状的两个阵列,条件是较小的阵列可以“扩展”到更大的形状。结果广播明确无误的方式。有关广播的详细“规则”,请参阅numpy.doc.broadcasting。

    NumPy完全支持面向对象的方法,再次使用ndarray开始。例如,ndarray是一个类,拥有许多方法和属性。它的许多方法都在最外层的NumPy命名空间中镜像函数,使程序员可以完全自由地编写她喜欢的范例和/或最适合手头任务的范例。

    python学习网,免费的在线学习python平台,欢迎关注!


    起源地下载网 » python numpy是什么

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元