Python---NumPy数值计算基础2

本文深入探讨Python中的NumPy库,重点介绍如何创建矩阵,包括使用mat()、matrix()和bmat()函数,以及NumPy的通用函数(ufunc)。详细解析了矩阵运算的特点和广播机制的工作原理,揭示了在不同形状数组运算时的规则和效率提升策略。

Python—NumPy数值计算基础2

NumPy矩阵以及通用函数

1)创建NumPy矩阵

创建矩阵可以采用以下函数:

函数说明
mat()创建矩阵(若输入为matrix或者ndarray对象,不创建副本)
matrix()创建矩阵,matrix(data,copy=False)则与mat()作用相同
bmat()创建分块矩阵(block matrix)

首先,引入NumPy库

import numpy as np #引入NumPy库

1.使用mat()函数创建矩阵

A = np.mat([[1, 2, 3], [4, 5, 6]]) #使用mat()函数创建矩阵
print(A)
A1 = np.mat("1,2,3;4,5,6") #和上面一种方式表达相同
print(A1)

上述两种表达方式的输出结果都是
在这里插入图片描述
2.使用matrix()函数创建矩阵

B = np.matrix("1,2,3;4,5,6") #使用matrix()函数创建矩阵
print(B)

其输出结果为
在这里插入图片描述
3.使用bmat()函数创建矩阵

C = np.bmat("A,B")  # 使用bmat()函数创建建分块矩阵
print(C)

得到输出结果
在这里插入图片描述
需要注意的是,在NumPy中,矩阵的运算都是对每个元素来运算的,比for循环的执行速度更快。

2)NumPy矩阵运算

D0 = B.T   #转置运算
D1 = A * 3  # 矩阵与数相乘
D2 = A + B  # 矩阵相加
D3 = A - B  # 矩阵相减
D4 = A * C  # 矩阵相乘
D5 = np.multiply(A, B)  # 矩阵对应元素相乘

矩阵特有的属性

属性说明
T矩阵的转置
I矩阵的求逆,得到逆矩阵
H矩阵的共轭转置
A返回矩阵的视图

3)NumPy的通用函数(ufunc函数)

1.数组的四则运算
数组的四则运算和数值运算的四则运算相同,也保留了四则运算的运算符。需要注意的是,参与运算的数组其shape必须一样。

import numpy as np
x = np.array([1,2,3])
y = np.array([4,5,6])
print("数组相加",x + y) #数组相加
print("数组相减",x - y) #数组相减
print("数组相乘",x * y) #数组相乘
print("数组相除",x / y) #数组相除
print("数组幂运算",x ** y) #数组幂运算

2.数组的比较运算
比较运算,是通过逐一比较两个数组中的元素值,并将比较结果存入对应的数组内。比较的结果采用False和True表示。

import numpy as np
x = [1, 2, 3]
x = [2, 3, 4]
print("数组比较结果为:",x == y) #输出比较结果的数组
print("数组比较结果为:",x != y)
print("数组比较结果为:",x >= y)
print("数组比较结果为:",x <= y)
print("数组比较结果为:",x > y)
print("数组比较结果为:",x < y)

3.广播机制
参与运算的两个数组shape不一样时,会采用广播机制。广播机制会对数组进行扩展,使数组的shape属性值一样,这样便可以进行运算。
遵循的原则如下:
1.当输入的数组某一维度为1,则沿着此轴运算时采用此轴的第一组值。
2.所有输入的数组向shape最长的看齐,shape不足的部分在前面补1。
3.输出数组的shape是输入shape的各个维度的最大长度。

import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6]]
arr2 = np.array([0, 1, 2])
print(arr1 +arr2)

系统会将[0,1,2]及进行copy得到[[01,2],[0,1,2]]),从而输出结果为在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值