- 博客(23)
- 收藏
- 关注
原创 python数据分析——numpy基础(四)
1、元素的重复操作(repeat与tail) repeat是元素级别的,tail是数组级别的print('Repeat: 按元素')arr = np.arange(3)print(arr)print(arr.repeat(3))print(arr.repeat([2, 3, 4])) # 3个元素,分别复制2, 3, 4次。长度要匹配!printprint('Repeat,指定...
2018-04-30 21:05:18 454
原创 python数据分析——numpy基础(三)
1、numpy中axis的函数'''print('求和,求平均')arr = np.random.randn(5, 4)print(arr)print(arr.mean())print(arr.sum())print(arr.mean(axis = 1)) # 对每一行的元素求平均print(arr.sum(0)) # 对每一列元素求和,axis可以省略。cumsum...
2018-04-28 00:28:41 522
原创 python数据分析——numpy基础(二)
1、数组转置和轴对称import numpy as npimport numpy.random as np_randomprint '转置矩阵'arr = np.arange(15).reshape((3, 5))print arrprint arr.Tprint '转置矩阵做点积'print np.dot(arr.T, arr)printprint '高维矩阵转换'...
2018-04-26 23:42:38 256
原创 android中LruCache详解
1、LruCache是一个泛型类,它内部采用一个LinkedHashMap以强引用的方式存储外界的缓存对象,其提供了get和put方法来完成缓存的获取和添加操作,当缓存满时,LruCache会移除较早使用的缓存对象,然后再添加新的缓存对象。 2、为了实现LRU(最近最少使用),LruCache里面使用了LinkedHashMap。LinkedHashMap的特性:HashMap与双向链表的组合,...
2018-04-26 15:19:45 848
原创 python数据分析——numpy基础(一)
1、创建Numpy数组import numpy as npprint '使用普通一维数组生成NumPy一维数组'data = [6, 7.5, 8, 0, 1]arr = np.array(data)print arrprint '打印元素类型'print arr.dtypeprint print '使用普通二维数组生成NumPy二维数组'data = [[1, 2,...
2018-04-26 00:14:15 297
原创 python装饰器
1、装饰器是函数的封装def decorator(fn): def wrapper(): print('%s' %fn.__name__) fn() print('%s' %fn.__name__) return wrapper()@decoratordef fun(): print("I am fun!!!"...
2018-04-24 21:53:03 97
原创 java深拷贝与浅拷贝
1、浅拷贝 浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。 实现浅拷贝public class Student implements Cloneable{ // 引用属性,浅拷...
2018-04-24 15:22:44 102
原创 python函数
1、高阶函数 可以把别的函数作为参数传入的函数叫高阶函数。# 将函数作为参数进行传递def add(x, y, f): return f(x) + f(y)ad = add(2, -3.5, abs)print(ad)2、匿名函数 python使用lambda来创建匿名函数 lambda的主体是一个表达式,而不是一个代码块,仅仅能在lambda表达式中封装有限的...
2018-04-23 22:16:44 116
原创 Android中为什么在view.post()可以获取到控件的宽高
View.post(Runnable) 内部会自动分两种情况处理,当 View 还没 attachedToWindow 时,会先将这些 Runnable 操作缓存下来;否则就直接通过 mAttachInfo.mHandler 将这些 Runnable 操作 post 到主线程的 MessageQueue 中等待执行。如果 View.post(Runnable) 的 Runnable 操作被缓存...
2018-04-23 15:26:06 1070
原创 python序列化与反序列化
1、序列化 程序运行的过程中,所有变量都是在内存中操作的,当程序一旦执行完毕,结束退出后,变量占有的内存就被操作系统回收了。 因此我们需要将某些数据持久化存储到磁盘中,下次运行的时候从磁盘中读取相关数据。 我们将变量从内存中变成可以存储或传输的过程称之为序列化,在Python中叫做pickling,在其它语言中也称之为 serialization、marshaling、flattening等等...
2018-04-22 21:31:09 4206
原创 python文件读写与操作
1、文本文件读写方式一 直接读入file1 = open("test.txt") file2 = open("output.txt","w") while True: line = file1.readline() #这里可以进行逻辑处理 file2.write('"'+line[:s]+'"'+",") if not line: ...
2018-04-22 19:39:01 247
原创 python中的鸭子类型
python不支持多态也用不到多态,多态的概念是应用于java和C#这一类强类型语言中,而Python崇尚鸭子类型(Duck Typing)鸭子类型:是一种动态类型的风格。一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试,“鸭子测试”可以这样表述: “当看到一只鸟走起来像鸭子...
2018-04-22 10:30:12 6165 5
原创 BackStackRecord(继承自FragmentTransaction) 中commit()与commitAllowingStateLoss()的区别
@Override public int commit() { return commitInternal(false); } @Override public int commitAllowingStateLoss() { return commitInternal(true); }从源代码来看,它们调用了同一...
2018-04-17 16:40:27 598
原创 Handler详解
Handler 主要工作是消息的发送和接收。通过post和send一些系列方法来实现 (1) 首先创建一个在初始化Handler时候发生了些什么事情呢? (2) Handler.sendMessage() 不管是调用sendMessage(),还是sendEmptyMessage()方法或者post()方法都会调用到一下方法 (3) Handler.dispatchMessag...
2018-04-14 17:29:08 101
原创 使用HandlerThread实现一个定时器进行定时刷新界面
代码实现如下 定时器类–TimerUtilspublic class TimerUtils implements Handler.Callback, Runnable { private static final int MSG_SEND_SIGNAL = 0; private Handler mUiHandler; private HandlerThread...
2018-04-13 14:59:10 1970
原创 ThreadLocal的工作原理
特点: ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储之后,只能在指定线程中可以获取到存储的数据。对于其他线程来说无法获取到数据。使用场景: 一般来说,当某些数据是以线程为作用域并且不同线程具有不同数据副本的实现,就可以考虑采用ThreadLocal. (1) 场景1:对于Handler来说,它需要获取当前线程的Looper,很显然Loope...
2018-04-12 17:25:46 138
原创 Fragment详解
FragmentTranscation中的重要函数// 向Activity中添加一个Fragmenttransaction.add(R.id.fl_content, secondFragment,FragmentSecond.TAG);// 从Activity中移除一个Fragment,如果移除的Fragment没有添加到回退栈,这个Fragment将会销毁transaction.r...
2018-04-11 16:25:02 155
原创 ViewPager中数据不刷新的问题
PagerAdapter刷新分析 notifyDataSetChanged() public void notifyDataSetChanged() { synchronized (this) { if (mViewPagerObserver != null) { mViewPagerObserver.onChang...
2018-04-10 16:01:32 1803
原创 Android中布局解析器inflate()函数详解
LayoutInflater中有重载的两个函数// 三个参数public View inflate(int resource, ViewGroup root, boolean attachToRoot) 参数解释:1、resource:要添加的布局2、root:这个参数下面会讲解到--参数1布局是否处于root中(root是否为null决定)3、attachToRoot:表示是否将第...
2018-04-09 11:39:24 894
原创 java集合框架中有些类(ArrayList、HashMap)等包含有modCount是什么意思
1、modCount是记录修改次数,出现在集合类(线程不安全)中的增、删函数中。 这个modCount与线程安全有关系。 HashMap中的部分源码如下:private abstract class HashIterator<E> implements Iterator<E> { Entry<K,V> next; // ...
2018-04-04 23:44:20 1103 1
原创 HashMap实现原理(二)——多线程问题
本文的分析是基于jdk1.7源码 前奏:我们都知道,HashMap的初始容量是16,当HashMap中的值的size超过threshold时,会进行扩容操作;扩容会执行resize—>transfer方法HashMap之所以线程不安全就是因为在resize(transfer)的时候会不安全。 resize(transfer)会执行如下操作,并将原hash表中的内容移动到新的hash表...
2018-04-04 18:30:04 241
原创 HashMap中实现原理分析(一)
JDK1.7中的HashMap (1) put(K key, V value) 原理 接下来分析:如果原table中没有要插入的value值,如何往table中插入元素addEntry(hash, key, value, i); 注:size–代表表中有多少元素。 threshold–阈值:表容量*加载因子 HashMap每次扩容是在原表的基础上增加一...
2018-04-04 14:56:27 119
原创 ScrolleView中嵌套ListView时,listview只加载一条的问题
解决方法1:public void initListViewBaseChildren(ListView lv, BaseAdapter adapter) { int totalHeight = 0; for (int i = 0; i < adapter.getCount(); i++) { View listItem = adapter....
2018-04-04 00:04:38 124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人