Numpy的array与Python的list的异同以及numpy的array与matrix的异同

Numpy与Python内置数据类型list的异同

Python 本身是设计为通用编程语言的,在科学计算方面远远不如MATLAB等语言。但是Python支持开发了Numpy,Numpy使Python有潜力在科学计算领域类比Matlab。numpy的array和list都可以表示多维数组,但各有优劣。list的通用性较强,通过嵌套形成多维数组,元素类型可以不同,实际存储的是数据的指针,还需另外存储指针和数据,在大数组情况下存储和吞吐效率较低;numpy的array是numpy的主要对象,专门为科学计算设计,元素类型必须相同,每个dimension称为一个axes,通过一组正整数来访问(list还可以通过负整数访问),array的操作和计算函数都是通过C编写,不受python解释器的限制,代码复杂度低,计算效率和吞吐效率高。

语法细节的不同:

  • 寻址的形式:[1,1](只有numpy.array可以),[1] [1](numpy.array和list都可以)
  • 元素类型,list可以不同,numpy的array必须相同。
  • 相互转换:numpy.array();list()

Numpy.array与Numpy.matrix的异同

numpy中还有一种数据类型matrix,matrix只能是二维的,赋值和运算与array有很多小的区别。
语法细节的不同:

  • 赋值的形式:
import numpy as np
a=np.mat('4 3; 2 1')
c=np.array([[4, 3], [2, 1]])
  • matrix可以有转置.T,共轭.H,逆矩阵.I;array只能用.T
  • 点积运算:array是*;matrix是np.multiply()
  • 矩阵乘:array用np.dot();matrix是*
  • 乘介运算**:对于matrix是矩阵乘,对于array是点积
  • 在做归约运算时,array的维数会发生变化,但matrix总是保持为2维
  • 相互转换:numpy.asmatrix();numpy.asarray()

numpy的其他特性

具有一定英文基础的同志建议在需要是利用numpy官网查阅使用,权威方便。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NumPy arrayPython List是两种常见的数据类型,它们都具有存储和操作数据的功能,但是这两种数据类型的使用方式和功能特性有很大的差异。 首先,NumPy arrayNumPy库的一个核心数据类型,它是一个固定大小且与元素类型相同的数组,而Python List是一个可变大小的列表,可以包含不同类型的数据。由于NumPy array是固定大小的,相较于Python List,在存储和访问大规模数据时更为高效。 其次,NumPy array支持广播和向量化操作,可以进行逐元素的运算,使得数据运算更加快速和高效,而Python List则需要一个for循环来完成逐个运算。 此外,NumPy库还可以进行线性代数、统计计算等高级运算。对于处理一些科学计算和数据分析任务,NumPy array可以更好地满足需求。 相比之下,PyTorch是一个基于Torch的Python深度学习框架,它的主要数据类型是Tensors。Tensors也类似于NumPyarray,可以存储和操作数据,但它同时支持GPU计算,可以快速计算神经网络中的大量计算。 此外,PyTorch框架还提供了自动微分、模型构建和优化等功能,对于进行深度学习任务的开发人员来说是非常便利的。而NumPy库则更适用于进行一些基础的数值计算和科学计算任务。 总之,NumPy arrayPython List是两种不同的数据类型,适用于不同的数据处理场景,而PyTorch中的Tensor则是一种更专门用于深度学习的数据类型。选择合适的数据类型,可以在数据处理和深度学习任务中提高效率和精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值