首页 > 编程知识 正文

python数组与矩阵操作(Python中的矩阵)

时间:2023-12-20 11:32:53 阅读:318173 作者:PDCS

本文目录一览:

Numpy array数组的常见运算

Numpy是Python最流行的数学计算库之一,它 支持多维数组与矩阵的各种运算。在Numpy库中ndarray对象是其核心,它支持任意维度的数组(向量),所有的运算都是以array为基础展开的。此外,在 Numpy的 矩阵mat是array的一个子集,也就是二维的数组。

下面我们来看一下array的基本运算。

NumPy数组在与数值进行运算时,具有广播特性。也就是说,数组中的每个元素都会进行同样的运算,这些运算包括“+、-、*、/、**、、|、^”等。

例如:array([1,2,3,4,5])*2 相当于array([1*2,2*2,3*2,4*2,5*2]), 代码示例如下。

对于维度相同的两个数组,将按照元素逐项进行运算。以‘*’为例:

已知

那么:

代码示例如下

对于维度不同的两个数组,则会进行广播运算, 例如

那么

我们知道对于向量

那么a与b的点积为:

在Numpy中,一维数组的点积(dot)和内积(inner)是相同的。但是对于多维数组来说,则有差别。inner运算中,可以将数组最后一个维度(行)视为向量,两个数组的内积就是逐项对这些向量的内积。而dot运算则是前一个数组雨后一个数组转置后的结果,即inner(a,b.T).

以上代码在Python 3.7中运行通过。

对Python中数组的几种使用方法总结

对Python中数组的几种使用方法总结

今天小编就为大家分享一篇对Python中数组的几种使用方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

二维数组的初始化

matirx_done = [[0 for i in range(0, len(matirx))]for j in range(0, len(matirx[0]))]

就将其初始化为一个与matrix相同大小的元素全为 0 的矩阵

数组的多级排序

在数组 idea_collect = [[3, 1, 2], [3, 2, 1], [3, 2, 2], [3, 1, 1]] 中, 先按照第二项排列, 再按照第三项倒序排列 可写为:

idea_collect.sort(key=lambda x: (x[1], -x[2]))

其中, x[1] 代表第二项正序排列, -x[2] 代表第三项倒序排列

排列结果为 [[3, 1, 2], [3, 1, 1], [3, 2, 2], [3, 2, 1]]

在一个 class 中多个函数不传参使用同一个数组

如例所示:

class Partition:

def __init__(self):

self.num_complete = []

def partition(self, num, start, end):

self.num_compelete = num

def partition_core(self):

del self.num_compelete[0]

其中,self.num_compelete就是 class 中两个函数同时可以直接调用的数组, 不过最好先在def __init__中声明这个数组

以上这篇对Python中数组的几种使用方法总结就是小编分享给大家的全部内容了

最受欢迎的 15 大 Python 库有哪些

1、Pandas:是一个Python包,旨在通过“标记”和“关系”数据进行工作,简单直观。它设计用于快速简单的数据操作、聚合和可视化,是数据整理的完美工具。

2、Numpy:是专门为Python中科学计算而设计的软件集合,它为Python中的n维数组和矩阵的操作提供了大量有用的功能。该库提供了NumPy数组类型的数学运算向量化,可以改善性能,从而加快执行速度。

3、SciPy:是一个工程和科学软件库,包含线性代数,优化,集成和统计的模块。SciPy库的主要功能是建立在NumPy上,通过其特定子模块提供有效的数值例程,并作为数字积分、优化和其他例程。

4、Matplotlib:为轻松生成简单而强大的可视化而量身定制,它使Python成为像MatLab或Mathematica这样的科学工具的竞争对手。

5、Seaborn:主要关注统计模型的可视化(包括热图),Seaborn高度依赖于Matplotlib。

6、Bokeh:独立于Matplotlib,主要焦点是交互性,它通过现代浏览器以数据驱动文档的风格呈现。

7、Plotly:是一个基于Web用于构建可视化的工具箱,提供API给一些编程语言(Python在内)。

8、Scikits:是Scikits

Stack额外的软件包,专为像图像处理和机器学习辅助等特定功能而设计。它建立在SciPy之上,中集成了有质量的代码和良好的文档、简单易用并且十分高效,是使用Python进行机器学习的实际行业标准。

9、Theano:是一个Python软件包,它定义了与NumPy类似的多维数组,以及数学运算和表达式。此库是被编译的,可实现在所有架构上的高效运行。

10、TensorFlow:是数据流图计算的开源库,旨在满足谷歌对训练神经网络的高需求,并且是基于神经网络的机器学习系统DistBelief的继任者,可以在大型数据集上快速训练神经网络。

11、Keras:是一个用Python编写的开源的库,用于在高层的接口上构建神经网络。它简单易懂,具有高级可扩展性。

12、NLTK:主要用于符号学和统计学自然语言处理(NLP) 的常见任务,旨在促进NLP及相关领域(语言学,认知科学人工智能等)的教学和研究。

13、Gensim:是一个用于Python的开源库,为有向量空间模型和主题模型的工作提供了使用工具。这个库是为了高效处理大量文本而设计,不仅可以进行内存处理,还可以通过广泛使用NumPy数据结构和SciPy操作来获得更高的效率。

python 怎么实现矩阵运算

1.numpy的导入和使用

data1=mat(zeros((

)))

#创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3)

data2=mat(ones((

)))

#创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int

data3=mat(random.rand(

))

#这里的random模块使用的是numpy中的random模块,random.rand(2,2)创建的是一个二维数组,需要将其转换成#matrix

data4=mat(random.randint(

10

,size=(

)))

#生成一个3*3的0-10之间的随机整数矩阵,如果需要指定下界则可以多加一个参数

data5=mat(random.randint(

,size=(

))

#产生一个2-8之间的随机整数矩阵

data6=mat(eye(

,dtype=

int

))

#产生一个2*2的对角矩阵

a1=[

]; a2=mat(diag(a1))

#生成一个对角线为1、2、3的对角矩阵

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。