自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wangTongGen

577828140@qq.com

  • 博客(41)
  • 资源 (2)
  • 收藏
  • 关注

原创 二叉树及其四种遍历的实现

前言:在数据的组织中,树结构的确是一个突破,因为我们用它实现的一系列算法比使用线性结构要快得多,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树、FP-树。另外可以用来提高编码效率,如哈弗曼树。 本文介绍如何使用Python实现二叉树的层次遍历、先序遍历、中序遍历以及后序遍历。概念:层次遍历(广度优先遍历):把节点的兄弟节点先搜索完了再往孩子节点搜索。 先序遍历...

2019-08-31 21:17:44 420 1

原创 如何在jupyter中添加conda虚拟环境

问题描述运行jupyter notebook时,发现无法选择conda env里创建的虚拟环境。解决办法1、在base环境中安装ipykernelpip install ipykernel2、创建虚拟环境、同时添加ipykernelconda create -n env_name python=3.5 ipykernel3、切换到虚拟环境conda activ...

2019-07-14 12:52:56 4144

原创 Mac使用命令行解压rar文件

前言:windows下常用的压缩文件格式为rar格式,Mac电脑在不安装其它软件无法解压rar文件,这时候可以使用终端命令unrar来解压文件。步骤一:使用Homebrew安装unrarhomebrew install unrar步骤二:cd到rar文件目录下,然后在终端输入下列命令unrar x rar文件 # x参数 解压后所有内容都放在一个同名的文件夹里...

2019-07-09 23:08:20 1199

原创 解决Pandas读取大文本文件导致内存溢出的问题

问题描述当使用pandas读取大文本文件时,会由于内存不足产生MemoryError异常,可以设置分块读取的方式来解决。代码实现import pandas as pd# 由于数据量较大,一次性读入可能造成内存错误(Memmory Error),因而使用pandas的分块读取def read_from_local(file_name, chunk_size=500000): ...

2019-07-08 22:23:03 6663 2

原创 Python脚本后台执行

需求分析我们经常会遇到一个问题,当使用SSH远程登录Linux服务器运行一些耗时较长的任务,当用户注销或者网络断开时,终端会收到HUP(hangup)信号从而关闭其所有子进程。解决办法Linux中,可以使用nohup将脚本放置在后台运行,其命令如下:nohup python spider.py params1 > nohup.out 2>&1 & # ...

2019-07-08 21:37:25 2919

原创 Tensorflow基于卷积神经网络(CNN)的手写数字识别

一、简介本项目在Tensorflow平台下利用卷积神经网络(CNN)实现了对mnist数据集(28*28)的手写数字图片的识别,通过5000*50个样本训练后,对500个样本进行测试,准确率可以达到95%左右。本文完整代码:https://github.com/iapcoder/cnnMnistRecognition。二、mnist数据集简介MNIST(Mixed National I...

2019-05-17 10:34:43 8782 1

原创 Python二叉树的实现与遍历

1. 二叉树在计算机科学中,二叉树是每个节点最多有两个子树的树结构,通常子树被称为左子树和右子树。2. 节点类一个节点对象包含数据和指向两个子节点的引用,数据代表要存储的内容。class Node(object): """节点""" def __init__(self, val): self.val = val self.lchil...

2019-05-16 11:11:08 1170

原创 Python实现二分查找

二分查找二分查找又称折半查找,优点是比较次数少、查找速度快、平均性能好;其缺点是要求待查表为有序表,且插入删除困难,因此折半查找适用于不经常变动而查找频繁的有序序列。其算法思想是将表中中间位置记录的关键字与要查找的关键字比较,如果两者相等则查找成功,否则利用中间位置将表分成前、后两个子表。如果中间记录的关键字大于查找关键字,则进一步查找前一字表,否则进一步查找后一子表。重复以上过程,直到满足条...

2019-05-15 21:34:06 2453

原创 Python排序算法之归并排序

归并排序归并排序是采用分治法的典型应用,分治法的思想就是先递归分解数组,再合并数组。将数组分解为最小之后再合并两个有效数组,其基本思路是比较两个数组最前面的数,谁小就先取谁,然后其指针就往后移一位,然后再比较,直到一个数组为空为止,最后把另一个数组剩余部分复制过来即可。算法实现# -*- coding: utf-8 -*-def merge_sort(array): "...

2019-05-15 20:51:42 1424

原创 Python排序算法——冒泡排序、选择排序、插入排序、希尔排序

一、冒泡排序冒泡排序是一种简单的排序算法,它重复地遍历要排序的数组,一次比较两个元素,如果顺序错误就把它们交换过来。由于最大的元素经过交换会慢慢“浮”到数列的顶端,因此叫作冒泡排序。冒泡排序的算法运作流程:比较相邻的元素,如果第一个比第二个大,就交换他们两个。 对每组相邻元素做同样的操作,从开始第一对到结尾最后一对,最后的数会是最大的数。 对所有元素重复以上步骤,除了最后一个...

2019-05-15 15:46:27 1415

原创 Python排序算法之快速排序

快速排序快速排序(Quick sort),又称划分交叉排序,通过一趟排序将要排序的数据分割成独立的两部分。其中一部分所有的数据都要比另一部分所有的数据小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤从数列中挑出一个元素,称为“基准”。 重新排序数列,所有元素比基准小的在元素左边,比基准大的在右边。该基准就处于数列中间位置,...

2019-05-14 20:38:47 1264

原创 Python实现队列

队列队列(queue)是只允许在一端进行插入操作,另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称(FIFO)。允许插入的一端为队尾,允许删除的一端为队头,不允许在中间部分进行操作。常用操作 enqueue(item):入队。 dequeue():出队。 is_empty():判空。 size():返回...

2019-05-13 20:47:34 1219

原创 Python利用列表实现栈

栈:栈(stack),也称为堆栈,是一种容器。可存入数据、访问元素、删除元素,它的特点是只允许在容器的一端(top)进行数据添加(push)和数据输出(pop)操作。没有位置概念,保证了任何时候操作的元素都是最后一次存入的元素,确定了一种默认的访问顺序。由于栈数据结构只允许在一端进行数据操作,因而按照后进先出(LIFO,Last In First Out)的原理运行。注:列表或者链表...

2019-05-13 17:43:15 1870

原创 Python实现单向循环链表

单向循环链表:单向循环链表相对于单链表,区别在于链表中最后一个节点的next区域不在指向None,而是指向链表的头节点。常用操作:is_empty() :判断链表是否为空,空则返回True,否则返回False。 length(): 返回链表的长度。 print():遍历链表并打印其中的元素。 add(item):往链表头部添加元素。 append(item):往链表尾部添加元素...

2019-05-13 16:43:15 1685

原创 Python实现双向链表

双向链表:比单链表复杂一点的就是双向链表,也是由一个个节点组成。每个节点有两个链接,一个指向前一个节点,当此节点为第一个节点时,指向None;另一个指向后一个节点,当此节点为最后一个节点时,指向None。节点实现:class Node(object): """节点""" def __init__(self, val=None): self.val = ...

2019-05-13 10:45:10 1284

原创 Python实现单向链表

使用Python写链表之前需要明白Python里变量存储的本质:变量本身就是存储的一个地址,交换他们的值就是把自己的指向更改一下。基于这一点,链表里面涉及的指针问题便可以解决。单向链表:也叫单链表,是链表中最简单的一种,由一个个节点组成,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。节点实现:class...

2019-04-30 12:17:48 1205

翻译 LeetCode15.三数之和

问题描述:给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。解决方法:class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: ...

2019-04-12 23:24:25 1253

翻译 LeetCode14.Python最长公共前缀最简单的方法

题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。所有输入只包含小写字母a-z示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。解决办法:在Python里字符串是可以比较的,其...

2019-04-10 18:27:08 1360

原创 LeetCode6.Z字形变换

问题描述:解题思路:创建一个具有numRows个元素的空列表,设置row=0,step=1,row+=step,一直到第numRows个元素,设置step=-1,直到回到row==0,循环以上步骤。代码实现:class Solution: def convert(self, s: str, numRows: int) -> str: ...

2019-04-08 18:44:14 1194

翻译 单层神经网络实现mnist手写数字识别

一 Mnist数据集介绍 Mnist数据集分为两部分:55000行训练数据(mnist.train)和10000行测试数据(mnist.test),每行数据由一张包含手写数字图片和对应的标签组成,手写数字为单通道28*28大小的图像,对应的标签为0-9之间的数字,由one-hot编码构成。二 神经网络构建 这里使用一种最简单的神经网络(由输入直接到输出)即全连接...

2019-04-08 12:42:39 2834

原创 Tensorflow读取二进制文件并将数据写进tfrecords后读取tfrecords

tensorflow可以读取样本长度固定的二进制文件,比如CIFAR-10数据,该二进制数据中一个样本由1字节的label和32*32*3字节的image组成。TFRecords是tensorflow设计的一种内置的文件格式,是一种二进制文件,它能更好地利用内存,更方便复制和移动。该程序实现tensorflow首先读取CIFAR-10的二进制数据,然后将其保存成tfrecords格式的...

2019-03-26 21:30:20 1641

原创 Tensorflow读取图片并转换成张量

使用神经网络对图片文件进行训练时,需要将图片信息转换为张量,这里介绍如何将图片信息转化为Tensorflow的张量信息。本文完整代码:https://github.com/iapcoder/TensorflowReadIMG一 步骤1、构造文件队列file_queue = tf.train.string_input_producer(file_list, shuffle=True...

2019-03-24 17:21:44 10204

原创 Tensorflow读取csv文件

前言:当深度学习使用的训练数据文件过大,使用pandas读取时会一次性读取全部数据,给内存带来了极大的压力。Tensorflow提供了一个使用队列且多线程读取文件的机制,缓解了内存的压力。该程序完整代码:https://github.com/iapcoder/TensorflowReadCSV一 步骤:1、构造文件队列file_queue = tf.train.string_inpu...

2019-03-23 22:41:11 3860

原创 python中range、xrange和arange的区别

range函数用于产生一组间隔平均的整数,可以指定起始值,结束值以及步长等信息。不包括末端值。 list(range(0,20,2))Out[2]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] xrange跟range一样,但它不会预先产生所有的值,而是返回一个迭代器。 aa = range(0,20,1)aaOut[5]: rang...

2019-03-01 17:20:48 2073

原创 如何处理numpy数组中的空值

关于np.nan需要注意的地方总结如下:np.nan不是空对象。 对列表中的nan进行操作时不能用"==np.nan"来判断。只能用np.isnan()来操作。 np.nan的数据类型是float。import numpy as npnp.nan == np.nanOut[3]: Falseaa = np.array([1,2,3,np.nan,np.nan,4,5,np.n...

2019-03-01 16:50:16 25484

原创 Mac安装MongoDB

注:mac安装MongoDB有很多中安装方法,这里推荐使用HomeBrew安装。一、安装1. 更新HomeBrew的package数据库,在Mac终端输入:brew update耐心等待更新完成即可。 2. 安装MongoDB,在Mac终端输入:brew install mongodb这一步也不需要做啥,有进度条显示,耐心等待安装完成。 二、使用1. 启动m...

2019-01-10 20:53:34 2009

原创 利用正则表达式爬取猫眼电影TOP100信息

本文利用requests库和正则表达式爬取了猫眼电影TOP100电影信息,并将电影封面和标题、主演等文字信息保存在了本地。本文完整代码链接:https://github.com/iapcoder/MaoYanTop100。运行里面的spider.py即可。一、目标练习使用正则表达式 使用python爬虫的库requests 爬取猫眼电影TOP100榜中电影的标题、主演、上映时间、评分、...

2019-01-09 15:03:05 3892 1

原创 MAC安装redis最简单的方法

一、安装命令使用mac的包管理工具brew一行命令搞定安装。若未安装brew,命令行先输入以下命令安装brew。/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"安装redis brew install redis@3.2 #后面@接...

2019-01-07 12:47:14 19981 1

翻译 MAC上Git安装及GitHub使用

目录 一、Git安装二、创建ssh key、配置git三、 提交本地项目到GitHub一、Git安装1、首先查看电脑是否安装git,在终端输入:git如果电脑已经安装git则会显示2、若未安装,则通过homebrew安装brew install git二、创建ssh key、配置git1、设置usernaem和email(用于之后github...

2019-01-06 14:18:26 4495 7

翻译 Python读写Matlab中的.mat文件

1 前言matlab和python之间的数据传输一般是matlab的文件格式.mat文件。python里有对应操作.mat格式的库,使得读取.mat文件十分方便。2 python读.mat文件# -*- coding: utf-8 -*-import scipy.io as sciofile_path = "文件路径"data = scio.loadmat(file_pa...

2018-12-27 13:36:56 3214

翻译 Python文件目录操作

Python对文件的操作主要涉及到os模块的函数import osos.path.exists(path) # 判断一个目录是否存在.os.makedirs(path) # 创建多层目录.os.mkdir(path) # 创建单层目录 .os.listdir(path) # 显示目录下下有多少文件.os.path.join(file_path, file_name) # 拼接文...

2018-12-27 13:19:39 1447

原创 matplotlib轻松解决中文乱码问题

python里matplotlib模块在画图方面用着十分爽,但是在图中不能显示中文,这里介绍一种十分简单的解决方法。1. 在代码开始加入两行代码,即可成功解决。#解决中文显示问题plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是...

2018-12-22 21:52:00 38537 23

原创 Mac重置MySQL密码

第一步:点击系统偏好设置->点击MySQL->点击Stop MySQL Server第二步:进入终端输入:cd /usr/local/mysql/bin/回车后 登录管理员权限sudo su回车后输入以下命令来禁止mysql验证功能./mysqld_safe --skip-grant-tables &回车后mysql会自动重启(偏...

2018-12-20 23:24:18 1473

原创 python找出列表中大于某个阈值的数据段

该算法实现对列表中大于某个阈值(比如level=5)的连续数据段的提取,具体效果如下:找出list里面大于5的连续数据段:list = [1,2,3,4,2,3,4,5,6,7,4,6,7,8,5,6,7,3,2,4,4,4,5,3,6,7,8,9,8,6,1]输出:[[6, 7], [6, 7, 8], [6, 7], [6, 7, 8, 9, 8, 6]]算法实现:...

2018-12-17 14:56:42 33384 6

翻译 解决Mac安装oh-my-zsh后出现 command not found的问题

安装oh-my-zsh后,之前安装的mysql、anaconda等在命令行输入显示command not found问题,解决方法如下:1、由于.zshrc 没有配置相关环境变量设置,需要将bash 中.bash_profile 全部环境变量加入open .zshrc2、下拉找到# User configuration部分,在下面添加source ~/.bash_profile...

2018-12-17 12:58:35 17216 1

翻译 numpy对数组求平均时如何忽略nan值

前言:在对numpy数组求平均np.mean()或者求数组中最大最小值np.max()/np.min()时,如果数组中有nan,此时求得的结果为:nan,那么该如何忽略其中的nan呢?此时应该用另一个方法:np.nanmean(),np.nanmax(),np.nanmin().使用np.mean()的效果使用np.nanmean()的效果...

2018-12-13 09:19:59 28662 2

翻译 Mac下安装shell神器 oh-my-zsh

oh-my-zsh是Mac下一个强大炫酷装逼的一个终端神器,安装方法如下:1.终端下输入命令安装curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 2.备份配置文件cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc3...

2018-12-11 13:24:03 4086

翻译 Mac下安装tree

tree是一个能列出递归目录的命令,以图形显示驱动器或路径的文件夹结构,可以生成命令树。Windows和Linux都有,mac没有原生支持,需要安装。由于安装tree需要先安装brew,具体步骤如下:1.安装brew,打开终端输入命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/instal...

2018-12-11 12:44:46 3067 1

原创 conda常用操作指令及Anaconda安装教程

为什么要安装Anaconda提供了包管理功能,windows下很多第三方包经常安装失败,而anaconda则解决了该问题。提供了环境管理功能,使用anaconda可以运行不同的python环境,并且各个环境不冲突。安装步骤step one: 下载安装包,根据不同的系统在anaconda官网选择不同的版本进行下载,比如64位windows版。step two:运行exe软件,依次点击n...

2018-11-19 01:48:57 2534

原创 Tensorflow实现简单的一元线性回归并保存和加载模型

简介:本文章以tensorflow为平台建立了一个简单的线性回归模型,并得到了不错的效果。同时实现了模型的保存与加载,当一个模型的训练时间非常长的时候,利用模型的加载可以实现开启程序时接着上次训练。平台:Python 3.6IDE:Pycharm一、线性回归模型介绍简单来说:线性回归就是利用一曲线段对一些连续的数据进行拟合,进而可以用这条曲线预测新的输出值。数学模型如下:其中:w...

2018-09-21 13:05:48 3114 2

《TensorFlow实战Google深度学习框架(第2版)》源代码.zip

该资源为《TensorFlow实战Google深度学习框架》 第二版 郑泽宇 书籍源代码,在CSDN平台下实现共享。

2019-07-25

python解析SA雷达数据

本程序利用Python读取SA气象雷达数据,并绘制回波图。具有较好的效果

2018-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除