栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数据挖掘技术与应用:创建NumPy矩阵

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据挖掘技术与应用:创建NumPy矩阵

创建NumPy矩阵

mat函数创建矩阵时,若输入matrix或ndarray对象,则不会为它们创建副本。因此,调用mat函数和调用matrix(data, copy=False)等价,如代码 4-1所示。

代码 4-1 使用mat函数与matrix函数创建矩阵

In[1]:

import numpy as np  #导入NumPy库

matr1 = np.mat("1 2 3;4 5 6;7 8 9") #使用分号隔开数据

print('创建的矩阵为:',matr1)

Out[1]:

创建的矩阵为: [[1 2 3]

 [4 5 6]

 [7 8 9]]

In[2]:

matr2 = np.matrix([[123],[456],[789]])

print('创建的矩阵为:',matr2)

Out[2]:

创建的矩阵为: [[123]

 [456]

 [789]]

很多时候会根据小的矩阵创建大的矩阵,即将小矩阵组合成大矩阵。在NumPy中可以使用bmat分块矩阵(block matrix)函数实现,如代码 42所示。

代码 4-2 使用bmat函数创建矩阵

In[3]:

arr1 = np.eye(3)

print('创建的数组1为:',arr1)

Out[3]:

创建的数组1为: [[ 1.  0.  0.]

[ 0.  1.  0.]

[ 0.  0.  1.]]

In[4]:

arr2 = 3*arr1

print('创建的数组2为:',arr2)

Out[4]:

创建的数组2为: [[ 3.  0.  0.]

[ 0.  3.  0.]

[ 0.  0.  3.]]

In[5]:

print('创建的矩阵为:',np.bmat("arr1 arr2; arr1 arr2"))

Out[5]:

创建的矩阵为: [[ 1.  0.  0.  3.  0.  0.]

[ 0.  1.  0.  0.  3.  0.]

[ 0.  0.  1.  0.  0.  3.]

[ 1.  0.  0.  3.  0.  0.]

[ 0.  1.  0.  0.  3.  0.]

[ 0.  0.  1.  0.  0.  3.]]

在NumPy中矩阵计算是针对整个矩阵中的每个元素,比起使用for循环在运算速度上更加高效,如代码 43所示。

代码 4-3 矩阵运算

In[6]:

 matr1 = np.mat("2 2 3;1 -1 0;-1 2 1")  #创建矩阵

print('创建的矩阵为:',matr1)

Out[6]:

 创建的矩阵为: [[ 2  2  3]

 [ 1 -1  0]

 [-1  2  1]]

In[7]:

matr2 = matr1*3  #矩阵与数相乘

print('创建的矩阵为:',matr2)

Out[7:

 创建的矩阵为: [[ 6  6  9]

 [ 3 -3  0]

 [-3  6  3]]

In[8]:

print('矩阵相加结果为:',matr1+matr2)  #矩阵相加

Out[8]:

 矩阵相加结果为: [[ 8  8 12]

 [ 4 -4  0]

 [-4  8  4]]

In[9]:

print('矩阵相减结果为:',matr1-matr2)  #矩阵相减

Out[9]:

 矩阵相减结果为: [[-4 -4 -6]

 [-2  2  0]

 [ 2 -4 -2]]

In[10]:

print('矩阵相乘结果为:',matr1*matr2)  #矩阵相乘

Out[10]:

 矩阵相乘结果为: [[ 9 24 27]

 [ 3  9  9]

 [-3 -6 -6]]

In[11]:

print('矩阵对应元素相乘的结果为:',np.multiply(matr1,matr2))  #矩阵对应元素相乘

Out[11]:

 矩阵对应元素相乘的结果为: [[12 12 27]

 [ 3  3  0]

 [ 3 12  3]]

矩阵属性的具体查看方法,如代码 4-4所示。

代码 4-4 查看矩阵属性

In[12]:

print('矩阵转置结果为:',matr1.T)  #转置

Out[12]:

 矩阵转置结果为: [[ 2  1 -1]

 [ 2 -1  2]

 [ 3  0  1]]

In[13]:

print('矩阵共轭转置结果为:',matr1.H)  #共轭转置(实数的共轭就是其本身)

Out[13]:

 矩阵共轭转置结果为: [[ 2  1 -1]

 [ 2 -1  2]

 [ 3  0  1]]

In[14]:

print('矩阵的逆矩阵结果为:',matr1.I)  #逆矩阵

Out[14]:

 矩阵的逆矩阵结果为: [[ 1. -4. -3.]

 [ 1. -5. -3.]

 [-1.  6.  4.]]

In[15]:

print('矩阵的二维数组结果为:',matr1.A)  #返回二维数组的视图

Out[15]:

 矩阵的二维数组结果为: [[ 2  2  3]

 [ 1 -1  0]

 [-1  2  1]]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871051.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号