numpy_ndarray的矩阵运算
发表于:2024-10-10 作者:千家信息网编辑
千家信息网最后更新 2024年10月10日,ndarry的矩阵运算数组是编程中的概念,矩阵、矢量是数学概念在计算机编程中,矩阵可以用数组形式定义,矢量可以用结构定义1. 矢量运算:相同大小的数组间运算应用在元素上示例代码(1):# 矢量与矢量运
千家信息网最后更新 2024年10月10日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安全错误
数据库的锁怎样保障安全
广州市圆心网络技术有限公司
电视上面有个服务器是什么东西
cad怎么转shp数据库
虹口区本地网络技术网上价格
数据库术语中oltp指的是
云南鸿顺智能软件开发
香港服务器托管常见问题解答
服务器主机运行怎么设置
东方通科技股份有限公司网络安全
未转变者服务器输入法怎么用不了
云服务器换线路
浪潮服务器如何重置BMC
软件开发项目经理变更
家园卫士部落服务器
关于共享服务器的管理办法
国际互联网科技创新研讨会
金税盘 安全接入服务器
php软件开发培训
外文数据库电子图书是什么
网盘 开房数据库
网站服务端软件开发教程
小学网络安全教育简报
受欢迎的esg数据库
数据库系统的几个重要部分是
软件开发报价明细
数据库语句追踪
泰坦陨落2服务器链接已过时
链信软件开发商
公安局网络安全管理岗辅警
河北嵌入式软件开发哪家便宜