加载中…
博文
标签:

__future__

python

兼容问题

新功能

杂谈

分类: Python
问题: Python 2.x 与Python 3.x存在版本兼容问题。Python的新特性不支持向下兼容,导致Python 2.x开发的程序不能在Python 3.x的环境下运行。

思路:把Python的新功能引入到当前项目中,使目前的代码能够在当前的Python版本下,兼容Python的新功能,为向Python新版本的过度提供准备。

方法:Python提供了__future__模块,实现将Python 3.x的新功能引入到Python 2.x代码中,为向Python 3.x的过度提供准备。

代码:
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
 ** 代码中一定要先引入__future__模块,再引入其它模块。A future statement must appear near the top of the module. The only lines that can appear before a future statement are: the module docstring (if any), comments, blank lines, and other future statements.

标签:

hugepage

ubuntu

内存

大页

分类: 网络安全


#Hugepages

## Hugepage的作用

1. 程序中用的都是虚拟地址,CPU需要把虚拟地址转换为物理地址. 

2. CPU将虚拟地址转换为物理地址需要进行两次查表(Tow-level translation), 先查页目录(Page Directory),再查页表(Page Table). 因此需要访问2次内存。

3. CPU为了增加转换速度,引入了TLB(Translation Lookaside Buffer). TLB是在CPU上的Cache,访问速度远块于内存,但是只能存储有限的映射关系.

4. 为了提高TLB的命中率(TLB hit), 引入Hugepage,通过提高内存页的大小,提高TLB hit.

5. 使用Hugepage,转换过程(page walk)只需一次查表过程,而且减少了页目录占用的内存空间.

## 设置Hugepage

Ubuntu 12.04 LTS

1. 打开/etc/sysctl.conf文件

```

sudo vim /etc/sysctl.conf

```

2. 把hugepage的数量配置写入/etc/sysctl.conf文件中

```

标签:

参数传递

对象引用

传值

传址

分类: Python

1. Python中的变量名是没有类型信息的,这样增加了python的灵活性。

a=[1,2,3]

a='Hello'

对象[1,2,3]是List类型的,对象'Hello'是String类型的,而变量a是没有类型的,变量a​仅仅是一个对象的引用(一个指针),既可以指向List类型对象,也可以指向String类型的对象。

​2. Python的参数传递既不是传值(pass-by-value),也不是传引用(pass-by-reference),而是对象的引用(pass-by-object-reference),即传递的是一个对象的内存地址。 

def reassign(list): 

  list = [0, 1]

def append(list): 

 

标签:

pandas

apply

map

applymap

it

分类: Python

将一个自定义的函数应用到Pandas的数据结构中可以使用map(), apply()或者applymap(),它们的区别在于应用的对象不同。

1. map() 是一个Series的函数,DataFrame结构中没有map()。map()将一个自定义函数应用于Series结构中的每个元素(elements)。

2. apply()和applymap()是DataFrame结构中的函数,Series中没有。它们的区别在于,apply()将一个函数作用于DataFrame中的每个行或者列,而applymap()是将函数做用于DataFrame中的所有元素(elements)。​

(2015-08-25 23:40)
标签:

pandas

python

to_sql

to_csv

read

分类: Python

Pandas中的DataFrame数据既可以存储在SQL数据库中,也可以直接存储在CSV文件中。

数据库

1. dataframe.to_sql()函数将DataFrame数据存储到数据库中。

name :数据表的名称, string, Name of SQL table

con : 数据库的链接,SQLAlchemy engine or DBAPI2 connection (legacy mode)

if_exists : 如果SQL表已经存在的处理方式,{‘fail’, ‘replace’, ‘append’}, default ‘fail’

​  

(2015-08-25 20:56)
标签:

pandas

dataframe

标签

it

分类: Python

DataFrame是Pandas的重要数据结构。DataFrame是一个有标签的2维异构数据结构。

dt = pandas.DataFrame(data, index=..., columns=...)​

dt.index 是行的标签(row labels),获得有多少行可以用len(dt.index)

dt.columns是列的标签(column labels)​, 获得有多少列可以用len(dt.columns)

dt.values是一个2维的异构数组。

dt.T 是将2维数组进行转置,行标签和列标签互换。​

标签:

纳秒

微秒

ns

us

it

分类: Python

ns是nanosecond的缩写,表示1/10^9秒

us是microsecond的缩写,表示1/10^6秒, 1 us=1000 ns

下面是英文单词中常用的数量单位前缀,缩写和表示的数量级别:

yotta Y  1024

zetta Z  1021

exa  1018

peta  1015

tera 

标签:

行数

列数

numpy

pandas

array

分类: Python

Numpy

numpy中的重要数据结构是ndarray,即多维同构数组(homogeneous multi-dimensional array),其中每个维度叫做轴axis。

ndarray.size是数组中所有elements的数量。 

ndarray中,axis的数量也叫做rank,例如1维数组的rank是1, 2维数组的rank是2, ndim属性是数组中axis的数量,也就是rank值。

ndarray的shape属性是一个tuple,表示每个维度上数据的数量(size)。

Pandas

pandas中重要的数据结构是DataFrame, 即有标签的异构数组(labelled heterogeneous two-dimensional tabular data structure),类似于数据库中的表格。

DataFrame也有shape属性,通过shape[0]和shape[1]可以读取行和列的数量。但是通过timeit测试,使用len(dataframe.index)比dataframe.shape[0]能更快的获得行数。

标签:

python

dist-packages

site-packages

分类: Python

 

  1. sudo apt-get install 安装的package存放在 /usr
标签:

import

error

module

relative

non-package

分类: Python
项目的代码被分割成不同的模块存放在不同的目录中。但是调用这些模块存在一个问题,就是它们存放在不同的目录中。

错误信息:
1. 直接引用父目录中的模块: ImportError: No module named db
2. 使用相对import方法后的错误提示: ValueError: Attempted relative import in non-package

解决方法:
在引入父目录的模块之前加上如下代码:
import os
import sys
sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '..'))

上面的方法是把当前python程序所在目录的父目录的绝对路径加入到环境变量PYTHONPATH中。PYTHONPATH是python的搜索路径,再引入模块时就可以从父目录中搜索得到了。

该方法虽然不如relative import方便,但是很实用。
  
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有