自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

转载 pandas入门03---pandas基本功能

01 重建索引reindex是pandas对象的重要方法。该方法用于创建一个符合新索引的新对象。import pandas as pdobj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d','b','a','c'])print(obj)...

2019-09-05 09:59:00 259

转载 pandas入门02---DataFrame

昨天讲了数据帧(DataFrame)是二维数据结构,即数据以行和列的表格方式排列。import pandas as pddata = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'], 'year': ...

2019-09-04 09:55:00 328

转载 pandas入门01---Series

为了入门pandas,需要熟悉两个常用的工具数据结构:Series和DataFrame。今天主要讲解Series。Series是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引(index)。最简单的Series可以仅仅由一个数组形成:...

2019-09-03 14:05:00 196

转载 NumPy入门06---IO、伪随机数生成

01 文件输入和输出np.save和np.load是高效存取硬盘数据的两大工具函数。数组在默认情况下是以未压缩的格式进行存储的,后缀名是.npy。import numpy as nparr = np.arange(10)np.save('some_array',arr)若文件存...

2019-09-02 10:50:00 148

转载 NumPy入门05---使用数组进行面向数组编程

01 将条件逻辑作为数组操作numpy.where函数是三元表达式x if condition else y的向量化版本。例如:我们有一个条件和两个数组。import numpy as npxarr = np.array([1.1,1.2,1.3,1.4,1.5])yarr = ...

2019-09-02 10:27:00 160

转载 Numpy入门04---通用函数

通用函数(ufunc),是一种在ndarray数据中进行逐元素操作的函数。有很多ufunc是简单的逐元素转换,如sqrt、exp:import numpy as nparr = np.arange(10)print("---原数组---")print(arr)print("---s...

2019-08-30 09:09:00 119

转载 Numpy入门03---ndarray多维数组对象(下)

上篇文章我们讲到了NumPy的创建、算术运算及广播特性。这篇文章我们将继续学习NumPy。01基础索引与切片ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。import numpy as nparr = np.arange(10)...

2019-08-29 10:32:00 180

转载 Numpy入门02---ndarray多维数组对象(上)

NumPy的核心特征之一就是N-维数组对象——ndarray。该数组允许你使用类似于标量的操作语法在整块数据上进行数学计算。接下来让我们举个例子感受一下:#!/usr/bin/python# -*- coding: UTF-8 -*-import numpy as np# 生成随机...

2019-08-28 15:26:00 281

转载 NumPy入门01---了解NumPy

01 NumPy简介NumPy是Numerical Python的简称,是目前Python数值计算中最为重要的基础包。02 Numpy包含了什么ndarray,一种高效多维数组。提供了基于数组的便捷算数操作以及灵活的广播功能。可以对所有数据进行快速矩阵运算,而无须虚幻程序对硬盘中数...

2019-08-28 11:01:00 127

转载 Python学习第12天---进程与线程

进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。我们现代的操作系统,都是支持“多任务”的操作系统。很多朋友对“多任务”可能比较陌生。我们举个例子:小明是一个大学生。有一天他去网吧打游戏,玩了没多久突然想起来有一个论文还没写今天老师就要收了。可是游戏才玩了没多久。算了游戏先挂机...

2019-08-16 09:17:00 106

转载 Python学习第11天---正则表达式

“ 正则表达式,在我们工作中经常被用来检索、替换那些符合我们需求的文本。”01 生活中的正则表达式对于正则表达式,很多人第一反应就是很困难。因为刚开始学习的时候,觉得它毫无规律的可言就是一串标点符号和字母组成的一个不知道用来干什么的表达式。当然,你看完这篇文章,我也不能保证你能精通正则表...

2019-08-15 15:38:00 107

转载 Python学习第10天---文件与异常

01 异常在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。在Python中,我们可以将那些在运行时可能会出现状况的代码放在try代码块中,在try代码块的后面可以跟上一个或多个except来捕获可能出现的异常状况。如下所示:try...

2019-08-15 15:30:00 95

转载 Python学习第9天---面向对象编程进阶

01 使用__slots__在上一节内容中,我们创建了Student类。那么,如果在开发中我们想限制实例的属性应该怎么办?比如,只允许Student实例有 name 和 age 属性。此时,Python的一个特殊变量__slots__就发挥了作用。Python允许在定义class的时候定义...

2019-08-15 15:22:00 114

转载 Python学习第8天---面向对象编程

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。01 类和对象类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为...

2019-08-15 15:13:00 174

转载 Python学习第7天---字符串及数据结构

01 字符串字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:value1 = 'hello'value2 = "Python"Python不支持单字符类型,单字符在 Python 中也是作为一个字...

2019-08-12 14:14:00 144

转载 Python学习第6天---函数及模块的使用

01 函数在学习本节内容之前,我们先来一起做道数学题。已知:半径分别为0.1、0.2、0.3的三个圆,分别求这三个圆的面积。很多读者可能要笑一下,这不是小学的数学问题吗?S = π * r * r那么S1 = π * 0.1 * 0.1S2 = π * 0.2 * 0.2S3...

2019-08-12 14:01:00 139

转载 Java如何创建线程

继承Thread实现Runnable接口线程池实现callable接口 转载于:https://my.oschina.net/u/3938912/blog/30...

2019-08-09 14:57:00 74

转载 CopyOnWriteArrayList

CopyOnWriteArrayList是ArrayList的一个线程安全的变体,其中所有的可变操作都是通过对底层数组进行一次新的复制来实现的。一般需要很大的开销。当迭代次数远大于修改次数时使用该容器,每次修改都会复制底层的数组。 ...

2019-08-09 14:53:00 63

转载 ArrayList和LinkedList

ArrayList采用动态数组来存储元素,数组初始容量为10,当数组需要扩容时,则按照新容量=(旧容量*3)/2+1进行扩容。ArrayList和LinkedList简单区别:ArrayList采用动态数组来存储元素,LinkedList采用链表方式存储元素。对于随机访问元素,Arra...

2019-08-09 14:49:00 98

转载 HashMap与Hashtable的区别

HashMap继承于AbstractMap类,而Hashtable继承于Dictionary。但是都实现了Map、Cloneable、Serializable这三个接口。Hashtable既不支持null key也不支持null value。HashMap中null可以作为键,但是此...

2019-08-09 14:32:00 77

转载 HashMap是线程安全的吗?有哪些线程安全的容器

HashMap不是线程安全的。HashMap的扩容机制就是重新申请一个容量是当前2倍的桶数组,然后将原先的记录逐个映射到新的桶里,然后将原先桶逐个置为null使得引用失效。在put或resize发生时,后一个线程的操作数据会将前一个数据覆盖,导致数据丢失。线程安全的容器:Vector、...

2019-08-09 14:19:00 749

转载 HashMap的初始容量为什么设置为16

length为2的整数次幂的话,h&(length-1)等价于 h%length-1 就相当于对length取模,这样便于保证散列的均匀,同时也提升了效率。length为2的整数次幂的话,为偶数,length-1为奇数,保证了h&(length-1)二进制保证了最后一...

2019-08-08 11:24:00 357

转载 Java中的散列表、树所对应的容器类,HashMap如何解决冲突

散列表:HashMap、Hashtable、concurrentHashMap、HashSet树:TreeMap、TreeSet解决冲突:链地址法。在Java1.8后采用链表法+红黑树实现,当链表长度超过阈值(8)时,将链表转换成红黑树。会减少查询时间。 ...

2019-08-08 10:46:00 112

转载 HashMap、LinkedHashMap、TreeMap

HashMap是基于哈希表的Map接口实现,以key-value的形式存在。在HashMap中,key-value总是会被当作一个整体来处理。系统会根据hash算法来计算key-value的存储位置。01 HashMap扩容HashMap(int initCapacity,float lo...

2019-08-08 10:38:00 97

转载 散列解决冲突的方法

01 开放定址法也被称为再散列法。基本思想是:当关键字key的哈希地址p出现冲突时,以p为基础产生另一个哈希地址p1,如果p1仍然冲突,再以p为基础产生p2,……,直到找到一个不冲突的哈希地址pi,将相应元素存入其中。这种方法有一个通用的再散列函数形式:Hi = (H(key)+di)%m...

2019-08-08 09:42:00 4963

转载 char可以存储汉字吗

char变量是用来存储Unicode编码的字符的,unicode编码字符中包含了汉字。所以char变量可以存储汉字。如果一些特殊汉字没有被包含在unicode编码字符集中,那么char变量不能存储这些特殊汉字。由于unicode编码占用两个字节,所以char变量占用两个字节。 ...

2019-08-08 08:57:00 1748

转载 Java中Object类都有哪些方法

waitnotifynotifyAllequalshashCodetoStringclonefinalize 转载于:https://my.oschina.net/u/...

2019-08-07 15:40:00 663

转载 Java实现生产者消费者

问题描述生产者和消费者在同一时间段内共用同一个存储空间,生产者向存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。当不加以协调时,可能会出现死锁。存储空间已满,而生产者占用着它,消费者等待生产者让出空间从而取走产品,生产者等待消费者消...

2019-08-07 14:01:00 89

转载 Java中的泛型擦除

Java中的泛型只在源码中存在,在编译后的字节码文件中就已经被替换成了原生类型。并在相应的位置插入强制类型转换。当泛型遇到重载时需要注意。 转载于:https://my.oschina....

2019-08-07 10:43:00 71

转载 Java中的类加载机制

01 全盘负责当一个类加载器加载某个Class时,该Class所依赖和引用的其他Class也将由该类加载器负责载入,除非显式的使用另外一个类加载器来载入。02 双亲委派当一个类加载器收到了类加载请求,他会把这个请求委派给父类加载器去完成,依次递归。因此所有加载请求最终都被传送至最顶层的启...

2019-08-07 10:39:00 161

转载 Java中的类加载

01 加载类加载指的是将class文件读入内存,并为之创建一个java.lang.Class对象。类的加载由类加载器完成。02 连接连接阶段负责把类的二进制数据合并到JRE中。又分为以下三个阶段:验证——确保加载的类信息符合JVM规范,无安全方面的问题。准备——为类的静态域分...

2019-08-07 10:32:00 51

转载 Java创建子类实例时会创建父类实例吗?

不会。创建一个对象时,JVM会在堆中给对象分配空间。这些空间用来存储当前对象实例属性以及父类的实例属性。会为父类分配堆内存,但是这块堆内存属于子类的堆内存。 转载于:https://...

2019-08-06 13:43:00 236

转载 synchronized和volatile区别

volatile本质是告诉JVM当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住。volatile仅能用在变量级别,而synchronized可以使用在变量、方法、类级别。volatile...

2019-08-06 10:08:00 120

转载 Java线程同步的方式

01 使用synchronized关键字有synchronized关键字修饰的方法有synchronized关键字修饰的语句块注意:synchronized关键字用于保护“共享数据”02 wait和notifywait() ——使线程处于等待状态,并且释放所持有对象的lock。sl...

2019-08-06 09:58:00 170

转载 为什么会出现锁机制

Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如:数据的增删改查)。将会导致数据出现不正确的结果,相互之间产生冲突,因此加入锁保证了该变量的唯一性和确定性。 转载...

2019-08-06 09:17:00 168

转载 Java中的引用

01 强引用强引用:即常用的Object o = new Object() ,只要强引用还在,垃圾分类器就永远不会回收此类对象。即使内存不足,JVM会抛出OutofMemory错误也不会回收该对象。02 软引用软引用:用来描述一些还有用但非必须的对象。在内存即将发生溢出前,会把这种对象列...

2019-08-06 09:14:00 52

转载 Java中的init方法和clinit方法

01 init方法init是对象构造器方法,在创建实例时调用。02 clinit方法clinit是类构造器方法,也就是在jvm在进行类加载-验证-解析-初始化中的初始化阶段,jvm会调用clinit方法。clinit方法是在类加载过程中执行的,而init方法是在对象实例化执行的。所以c...

2019-08-05 15:19:00 754

转载 静态分派和动态分派

01 静态分派所有依赖静态类型来定位方法执行版本的分派成为静态分派,发生在编译时期。应用为方法重载。静态分派发生在编译阶段,因此确定静态分派的动作实际上不是由虚拟机来执行的。02 动态分派典型应用为重写,是一种动态的概念。向上转型后调用子类覆写的方法便是一个很好地说明动态分派的例子。...

2019-08-05 14:24:00 98

转载 Java重载和重写

01 重写(override)重写是子类对父类允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变——即外壳不变,核心重写。重写的优点在于可以根据子类需要,定义特定于自己的行为。重写不能抛出新的检查异常或者比被重写方法更加宽泛的异常。02 重载(overload)重载是在一个...

2019-08-05 14:07:00 70

转载 Java对象创建的过程

判断是否加载分配内存初始化零值设置对象头执行init方法 转载于:https://my.oschina.net/u/3938912/blog/3083537...

2019-08-05 11:22:00 62

空空如也

空空如也

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

TA关注的人

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