想不用第三方库实现点深度学习的基础部分,发现numpy真的好难(笑),在此做点遇到的函数的笔记

惯例官方文档:https://docs.scipy.org/doc/numpy-1.16.1/reference/,但真的属实弟弟排版。

以下都以import numpy as np为前提。

1. np.zip()作用

该函数以多个可迭代的类型数据为输入,如字典、列表和元组,从这些迭代类型中各取其一个值,组成新的一个迭代类型。如输入两个1x2矩阵(a,b)和(c,d),则会从两个矩阵中分别同时抽出第一个和第二个组合成一个新的矩阵[(a,c),(b,d)]。但python3中返回的是zip类型,可用list()将之转换为列表。

这个函数虽然看起来非常鸡肋,但是其实异常好用!

在深度学习中需要频繁地计算带偏置值的输入加权和并将其作为激活函数的输入,即σ(w*a+b),此时可以将偏置矩阵和权值矩阵用zip组合起来,代码形式就会如下简便很多!

假设已有偏执矩阵biases和权值矩阵weights并使用sigmoid作为激活函数,单层神经元的前向传播可写为:

for b,w in zip(weights.biases):

  output=sigmoid(np.dot(w,output)+b)

2.numpy库的各种矩阵乘法

np.dot(A,B) - 同线性代数中的矩阵乘法(当所给AB均为向量时,按矩阵乘法来看该式就自动退化为两向量内积)

np.multiply(A,B) - 同结构矩阵元素对应相乘,非常常用且实用

单独的一个星号‘ * ’,如A*B - 若所给AB为np.array类型,该式会给出同np.multiply的元素对应相乘类型;若所给AB为np.matrix类型,该式会给出同np.dot的矩阵相乘结果。其实就是万恶的重载差别。可能因为multiply这词要打的字实在是太多了吧。

2.np.reshape(-1,1)中的-1值

当不知道有多少或者懒得计算的时候,使用-1替代行值或列值,reshape会自动计算并正确转换。

(持续更新吧)

python中numpy库的一些使用的更多相关文章

  1. python中numpy库ndarray多维数组的的运算:np.abs(x)、np.sqrt(x)、np.modf(x)等

    numpy库提供非常便捷的数组运算,方便数据的处理. 1.数组与标量之间可直接进行运算 In [45]: aOut[45]:array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ ...

  2. Python中Numpy ndarray的使用

    本文主讲Python中Numpy数组的类型.全0全1数组的生成.随机数组.数组操作.矩阵的简单运算.矩阵的数学运算. 尽管可以用python中list嵌套来模拟矩阵,但使用Numpy库更方便. 定义数 ...

  3. Python中Numpy及Matplotlib使用

    Python中Numpy及Matplotlib使用 1. Jupyter Notebooks 作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!! 你可以 ...

  4. 基于Python中numpy数组的合并实例讲解

    基于Python中numpy数组的合并实例讲解 下面小编就为大家分享一篇基于Python中numpy数组的合并实例讲解,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 Python中n ...

  5. python中requests库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

  6. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  7. python中numpy矩阵运算操作大全(非常全)!

    python中numpy矩阵运算操作大全(非常全) //2019.07.10晚python矩阵运算大全1.矩阵的输出形式:对于任何一个矩阵,python输出的模板是:import numpy as n ...

  8. Python的numpy库下的几个小函数的用法

    numpy库是Python进行数据分析和矩阵运算的一个非常重要的库,可以说numpy让Python有了matlab的味道 本文主要介绍几个numpy库下的小函数. 1.mat函数 mat函数可以将目标 ...

  9. Python数据分析numpy库

    1.简介 Numpy库是进行数据分析的基础库,panda库就是基于Numpy库的,在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高 2.Numpy库的安装 linux(Ubuntu ...

随机推荐

  1. 新建虚拟机ping不通windows主机,windows主机ping不通虚拟机解决办法(图文)

    说明: 新建虚拟机和主机互ping不通,因此使用xhell等远程连接工具连接不上 解决办法:配置的时候注意网段 2.修改   /etc/sysconfig/network-scripts/ifcfg- ...

  2. centos 安装 部署 gitlab github

    https://www.cnblogs.com/wenwei-blog/p/5861450.html 我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 ...

  3. 【MySQL 高级】索引优化分析

    MySQL高级 索引优化分析 SQL 的效率问题 出现性能下降,SQL 执行慢,执行时间长,等待时间长等情况,可能的原因有: 查询语句写的不好 索引失效 单值索引:在 user 表中给 name 属性 ...

  4. 【Redis3.0.x】NoSql 入门

    Redis3.0.x NoSql 入门 概述 NoSQL(Not Only SQL ),即不仅仅是 SQL,泛指非关系型的数据库.NoSQL 数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑 ...

  5. Flutter 基础组件:进度指示器

    前言 Material 组件库中提供了两种进度指示器:LinearProgressIndicator和CircularProgressIndicator,它们都可以同时用于精确的进度指示和模糊的进度指 ...

  6. 深入汇编指令理解Java关键字volatile

    volatile是什么 volatile关键字是Java提供的一种轻量级同步机制.它能够保证可见性和有序性,但是不能保证原子性 可见性 对于volatile的可见性,先看看这段代码的执行 flag默认 ...

  7. RocketMQ在linx安装及其有关问题解决

    Linx安装和使用: rocketmq官网:http://rocketmq.apache.org/ 首先安装JDK(推荐使用JDK1.8),并配置环境变量 下载rocketmq压碎包并解压到指定目录 ...

  8. Java运算符及包机制

    Java中的运算符及包机制 算术运算符:+ - * / % ++ -- 赋值运算符:=,+=,-=,*=,/= 关系运算符:>,<,>=,<=,==,!=,instanceof ...

  9. django url别名和反向解析 命名空间

    url别名和反向解析 我们平时写的url名字都是死的,如果项目过大,需要项目中某个文件名改动一下,那么改动起来就不是一般的麻烦了,所以我们就在定义的时候给url起一个别名,以后不管哪个文件中运用都是用 ...

  10. 事件循环Event loop到底是什么

    摘要:本文通过结合官方文档MDN和其他博客深入解析浏览器的事件循环机制,而NodeJS有另一套事件循环机制,不在本文讨论范围中.process.nextTick和setImmediate是NodeJS ...