Numpy的学习2-基础运算1
import numpy as np
a=np.array([10,20,30,40]) # array([10, 20, 30, 40])
b=np.arange(4) # array([0, 1, 2, 3]) print(a,b)
c=a-b
print(c)
'''
[10 20 30 40] [0 1 2 3]
[10 19 28 37]
可以看到满足矩阵的减法运算,对应元素相减
''' c=a*b # array([ 0, 20, 60, 120])#a,b对应元素相乘法
c=b**2 # array([0, 1, 4, 9]) #每个元素对应2次方 # 另外,Numpy中具有很多的数学函数工具,比如三角函数等,当我们需要对矩阵中每一项元素进行函数运算时,可以很简便的调用它们(以sin函数为例):
c=10*np.sin(a)
# array([-5.44021111, 9.12945251, -9.88031624, 7.4511316 ]) # 除了函数应用外,在脚本中对print函数进行一些修改可以进行逻辑判断:
# 如果想要执行是否相等的判断, 依然需要输入 == 而不是 = 来完成相应的逻辑判断。
print(b<3)
# array([ True, True, True, False], dtype=bool) '''
上述运算均是建立在一维矩阵,即只有一行的矩阵上面的计算,如果我们想要对多行多维度的矩阵进行操作,需要对开始的脚本进行一些修改:
''' a=np.array([[1,1],[0,1]])
b=np.arange(4).reshape((2,2)) print(a)
# array([[1, 1],
# [0, 1]]) print(b)
# array([[0, 1],
# [2, 3]]) # Numpy中的矩阵乘法分为两种, 其一是前文中的对应元素相乘,其二是标准的矩阵乘法运算,即对应行乘对应列得到相应元素:
c_dot = np.dot(a,b) #可以看到np.dot就表示numpy中的矩阵想乘,这里要注意的是,矩阵相乘的元素必须是numpy中的数据元素
c_dot_2 = a.dot(b) #另外的一种表示方式
print(c_dot)
# array([[2, 4],
# [2, 3]]) # 来看看关于 sum(), min(), max()的使用:
a=np.random.random((2,4))
print(a)
print(np.sum(a),np.min(a),np.max(a)) '''
如果你需要对行或者列进行查找运算,就需要在上述代码中为 axis 进行赋值。
当axis的值为0的时候,将会以列作为查找单元, 当axis的值为1的时候,将会以行作为查找单元。
'''
print("a =",a)
# a = [[ 0.23651224 0.41900661 0.84869417 0.46456022]
# [ 0.60771087 0.9043845 0.36603285 0.55746074]]
print("sum =",np.sum(a,axis=1)) # sum = [ 1.96877324 2.43558896]
print("min =",np.min(a,axis=0)) # min = [ 0.23651224 0.41900661 0.36603285 0.46456022]
print("max =",np.max(a,axis=1)) # max = [ 0.84869417 0.9043845 ]
需要注意的是dot表示的是矩阵相乘,而*表示的的是对应元素相乘
对于要对列或者行进行查找运算的时候(这是个需求,比如在RNN中,节点的Weight矩阵是分为输入数据和当前状态两个部分,有分开讨论的需求)
加入axis=1表示以行为查找,axis为0表示以列为查找
当不满足矩阵乘法的规则时候(shape不满足),运算会出问题,所以要认真检查shape
Numpy的学习2-基础运算1的更多相关文章
- numpy的基础运算2-【老鱼学numpy】
numpy的基础运算中还有很多运算,我们这里再记录一些. 最小/大值索引 前面一篇博文中我们讲述过如何获得数组中的最小值,这里我们获得最小/大值的索引值,也就是这个最小/大值在整个数组中位于第几位. ...
- Linux学习-计算机基础
Linux 学习-计算机基础 一.描述计算机的组成及其功能. 计算机系统是由硬件(Hardware)和软件(Software )两部分组成. 硬件: 从硬件基本结构上来讲,计算机是由运算器.控制器.存 ...
- numpy的学习之路(1)——创建数组以及基本运算
需要导入的包 import numpy as np import pandas 一.利用numpy创建数组 1.1创建简单数组 array =np.array([[1,2,3], [2,3,4]]) ...
- NumPy 数组学习手册·翻译完成
原文:Learning NumPy Array 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 ...
- 关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL))
关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习 ...
- 一步步学习javascript基础篇(0):开篇索引
索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...
- 一步步学习javascript基础篇(3):Object、Function等引用类型
我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...
- JavaScript学习02 基础语法
JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...
- jQuery学习笔记 - 基础知识扫盲入门篇
jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...
随机推荐
- 今天谁也别想阻止我好好学习!「CDR 6·18特惠倒计时2天!」
前几天小编刷抖音,一个以农夫山泉为创作背景的服装原创视频 让我为之一震 这个自称以捡瓶子为生的服装设计师 让我产生了极为浓烈的兴趣 细扒这位小姐姐的视频 她用身边的常见物品 脑洞大开的画出了一系列插画 ...
- 思维导图软件iMindMap的使用方法
从手绘的思维导图再到各种各样的思维导图的软件,思维导图的高效性大家都体会到了.思维导图软件iMindMap在众多导图软件中是最受欢迎的之一,下面就给大家分享一下思维导图怎么画: 首先我要教给大家的是如 ...
- day97:MoFang:移动端APP开发准备&移动端项目搭建&APICloud前端框架
目录 1.移动端开发相关概念 1.APP类型 2.移动端屏幕介绍 3.移动端自适配方案 4.元信息(meta) 2.APP开发准备 1.注册APPCLoud账号 2.下载APP开发编辑器 3.下载AP ...
- 【VUE】2.渲染组件&重定向路由
1.删除多余组件,使环境赶紧 1. 整理App.vue, 删除多余内容,在template 模板区域增加一个路由占位符 router-view:渲染路径匹配到的视图组件 <template> ...
- synchronized关键字的可重入性
/**父类*/public class SynchronizedDemo1 implements Runnable { @Override public void run() { try { meth ...
- react-hash-calendar,移动端日期时间选择插件
按照惯例,先上效果图 vue 版本同款日历:https://github.com/TangSY/vue-hash-calendar react-hash-calendar 支持手势滑动操作 上下滑动 ...
- LeetCode双周赛#35
1589. 所有排列中的最大和 #差分 #贪心 题目链接 题意 给定整数数组nums,以及查询数组requests,其中requests[i] = [starti, endi] .第i个查询求 num ...
- 分享:经常说你精通C语言,看看这十道题你会不会解!
今天给大家分享我们在日常工作中可能遇到的疑问,不看答案,你是否有把握都能答对?让我们来试试吧~ 一.会输出"hello-std-out"? 参考答案: stdout和stder ...
- 企业安全04-phpstudy最新版本nginx 默认存在任意文件解析漏洞
phpstudy最新版本nginx 默认存在任意文件解析漏洞 一.漏洞描述 phpStudy是一个PHP调试环境的程序集成包.该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ ...
- javaAgent与pinpoint
转载:https://www.cnblogs.com/kokov/p/12120033.html 项目中pinpoint应用: