numpy_ndarray的矩阵运算
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,ndarry的矩阵运算数组是编程中的概念,矩阵、矢量是数学概念在计算机编程中,矩阵可以用数组形式定义,矢量可以用结构定义1. 矢量运算:相同大小的数组间运算应用在元素上示例代码(1):# 矢量与矢量运
千家信息网最后更新 2025年12月02日numpy_ndarray的矩阵运算
ndarry的矩阵运算
数组是编程中的概念,矩阵、矢量是数学概念
在计算机编程中,矩阵可以用数组形式定义,矢量可以用结构定义
1. 矢量运算:相同大小的数组间运算应用在元素上
示例代码(1):
# 矢量与矢量运算arr = np.array([[1, 2, 3], [4, 5, 6]])print("元素相乘:")print(arr * arr)print("矩阵相加:")print(arr + arr)运行结果:
元素相乘:[[ 1 4 9] [16 25 36]]矩阵相加:[[ 2 4 6] [ 8 10 12]]- 矢量和标量运算:"广播" - 将标量"广播"到各个元素
# 矢量与标量运算print(1. / arr)print(2. * arr)运算结果:
[[ 1. 0.5 0.33333333] [ 0.25 0.2 0.16666667]][[ 2. 4. 6.] [ 8. 10. 12.]]ndarray的索引与切片
- 一维数组的索引与切片
与Python的列表索引功能相似
示例代码(1):
# 一维数组arr1 = np.arange(10)print(arr1)print(arr1[2:5])运行结果:
[0 1 2 3 4 5 6 7 8 9][2 3 4]- 多维数组的索引与切片
arr[r1:r2, c1:c2]
arr[1,1]等价arr[1][1]
[:]代表某个维度的数据
示例代码(2):
# 多维数组arr2 = np.arange(12).reshape(3, 4)print(arr2)print(arr2[1])print(arr2[0:2, 2:])print(arr2[:, 1:3])运行结果:
[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]][4 5 6 7][[2 3] [6 7]][[ 1 2] [ 5 6] [ 9 10]]- 条件索引
布尔值多维数组:arr[condition], condition也可以是多个条件组合。
注意,多个条件组合要使用& |连接,而不是Python的 and or。
示例代码(3):
# 条件索引# 找出 data_arr 中 2005年后的数据data_arr = np.random.rand(3, 3)print(data_arr)year_arr = np.array([[2000, 2001, 2000], [2005, 2002, 2009], [2001, 2003, 2010]])is_year_after_2005 = year_arr >= 2005print(is_year_after_2005, is_year_after_2005.dtype)filtered_arr = data_arr[is_year_after_2005]print(filtered_arr)#filtered_arr = data_arr[year_arr >= 2005]#print(filtered_arr)# 多个条件filtered_arr = data_arr[(year_arr <= 2005) & (year_arr % 2 == 0)]print(filtered_arr)运行结果:
[[ 0.53514038 0.93893429 0.1087513 ] [ 0.32076215 0.39820313 0.89765765] [ 0.6572177 0.71284822 0.15108756]][[False False False] [ True False True] [False False True]] bool[ 0.32076215 0.89765765 0.15108756]#[ 0.32076215 0.89765765 0.15108756][ 0.53514038 0.1087513 0.39820313]ndarray的维数转换
二维数组直接使用转换函数:transpose()
高维数组转换要指定维度编号参数(0,1,2,……),注意参数是元组
示例代码:
arr = np.random.rand(2, 3) # 2*3 数组print(arr)print(arr.transpose()) # 转换为 3*2 数组arr3d = np.random.rand(2, 3, 4) # 2*3*4数组,2对应0, 3对应1,4对应2print(arr3d)print(arr3d.transpose((1, 0, 2))) # 根据维度编号,转换为3*2*4数组运行结果:
# 高维数组转换# 转换前:[[[ 0.91281153 0.61213743 0.16214062 0.73380458] [ 0.45539155 0.04232412 0.82857746 0.35097793] [ 0.70418988 0.78075814 0.70963972 0.63774692]] [[ 0.17772347 0.64875514 0.48422954 0.86919646] [ 0.92771033 0.51518773 0.82679073 0.18469917] [ 0.37260457 0.49041953 0.96221477 0.16300198]]]# 转换后:[[[ 0.91281153 0.61213743 0.16214062 0.73380458] [ 0.17772347 0.64875514 0.48422954 0.86919646]] [[ 0.45539155 0.04232412 0.82857746 0.35097793] [ 0.92771033 0.51518773 0.82679073 0.18469917]] [[ 0.70418988 0.78075814 0.70963972 0.63774692] [ 0.37260457 0.49041953 0.96221477 0.16300198]]]
数组
运算
矢量
索引
结果
矩阵
代码
条件
示例
运行
元素
多个
标量
维度
多维
参数
数据
概念
高维
一维
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
酒店网络技术架构
我的世界mod服务器要什么
企业文件服务器找哪个软件好
随机输出数据库信息 代码
软件开发专业技校排名
上海网络安全咨询服务热线
毕设视频剪辑软件开发
我的世界网易版无限矿石服务器
山西诚信积分管理软件开发软件
数据库查询每门课程的最低分数
网络安全民警宣讲
深圳三圆互联网科技有限公司
中文在数据库中占几个长度
上海镇江用友u9软件开发
5g服务器国产替代
云服务器的主要形式包括那两种
学生网络安全教育信息
网络安全专家招聘
pc服务器能用的指令
传输网络技术的传输速率
数据提交服务器有哪些
约饭软件开发公司
软件开发高中学历可以吗
虹口区品牌软件开发销售方法
关于数据库的索引
服务器坏掉 快速
服务器安装盘
合肥网络安全运维
梅毅 网络安全和信息化
服务器如何关闭其他远程连接