numpy_ndarray的矩阵运算
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,ndarry的矩阵运算数组是编程中的概念,矩阵、矢量是数学概念在计算机编程中,矩阵可以用数组形式定义,矢量可以用结构定义1. 矢量运算:相同大小的数组间运算应用在元素上示例代码(1):# 矢量与矢量运
千家信息网最后更新 2024年11月28日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安全错误
数据库的锁怎样保障安全
25岁零基础学软件开发
进腾讯阿里搞软件开发有多难
网络安全威胁以及防范策略
软件开发综合实训大作业
sql数据库网页版
服务器搭建视频教程
我的世界服务器矿洞怎么找
股票软件开发入门
服务器和鼠标怎么用无线
cmd怎么连接远程数据库
莱芜数据库数据恢复价格
爱米云服务器
省级软件开发区
怎么在中国经济金融数据库找资源
阿里软件开发待遇
广电网络技术人员招聘
山西享当家网络技术有限公司
快线服务器
csol 游戏服务器
网络安全知识答题答案齐齐哈尔
为什么用友系统连接不上数据库
代理服务器端口有多大
软件开发功能编写
雨木林风软件开发
数据库是装在服务器吗
南平app软件开发公司
深圳排队网络技术怎么样
我国网络安全立法体系的三个层面
游戏软件开发吧
部队手机网络安全教育感悟