Numpy与Pandas

来源:互联网 发布:淘宝消费者规则在哪 编辑:程序博客网 时间:2024/04/30 00:24

我们来讲一讲Numpy与Pandas的基本使用方法。


首先来讲一下Numpy,Numpy提供了一些非常有用的统计函数,比如Mean(numpy.mean)、Median(numpy.median)以及Standard deviation(numpy.std)。

import numpy as np'''下面的代码能帮助你使用Numpy,当你需要使用向量与数组的运算时,比如数组乘法,Numpy是很好的选择。而且Numpy优化较好,比直接使用Python中的list要快。''''''Numpy中数组和Python中的lists差不多,唯一的区别是Numpy数组中所有值必需是同一种类型,比如int或者float。'''# 把False改为True来运行这段代码if False:    array = np.array([1, 4, 5, 8], float)    print array    print ""    array = np.array([[1, 2, 3], [4, 5, 6]], float)  # a 2D array/Matrix    print array'''与Python中的list类似,你可以索引、分段、修改一个Numpy数组。'''# 把False改为True来运行这段代码if False:    array = np.array([1, 4, 5, 8], float)    print array    print ""    print array[1]    print ""    print array[:2]    print ""    array[1] = 5.0    print array[1]# 把False改为True来运行这段代码if False:    two_D_array = np.array([[1, 2, 3], [4, 5, 6]], float)    print two_D_array    print ""    print two_D_array[1][1]    print ""    print two_D_array[1, :]    print ""    print two_D_array[:, 2]'''这里是一些关于Numpy数组的算术运算'''# 把False改为True来运行这段代码if False:    array_1 = np.array([1, 2, 3], float)    array_2 = np.array([5, 2, 6], float)    print array_1 + array_2    print ""    print array_1 - array_2    print ""    print array_1 * array_2# 把False改为True来运行这段代码if False:    array_1 = np.array([[1, 2], [3, 4]], float)    array_2 = np.array([[5, 6], [7, 8]], float)    print array_1 + array_2    print ""    print array_1 - array_2    print ""    print array_1 * array_2'''除了标准的算术运算,Numpy也有一些其他的数学运算,比如计算平均数或者点乘。'''# 把False改为True来运行这段代码if False:    array_1 = np.array([1, 2, 3], float)    array_2 = np.array([[6], [7], [8]], float)    print np.mean(array_1)    print np.mean(array_2)    print ""    print np.dot(array_1, array_2)

下面来讲一下Pandas,Pandas的数据通常存储在DataFrame的数据框架中,现介绍一下Pandas的Series:

import pandas as pd'''下面的代码帮你了解Series的概念。你可以把Series想成一维object,和array、list有点像。默认的它会为每一行分配一个索引标签,范围从0到N,这里N是总条数减一。'''# 将False改为True来创建一个Series对象if False:    series = pd.Series(['Dave', 'Cheng-Han', 'Udacity', 42, -1789710578])    print series'''在创建series的同时,你也可以为每一条分配索引。'''# 将False改为True来看自定义索引if True:    series = pd.Series(['Dave', 'Cheng-Han', 359, 9001],                       index=['Instructor', 'Curriculum Manager',                              'Course Number', 'Power Level'])    print series'''你可以使用索引来从Series中选择特定的序列'''# 将False改为True来看用索引选择特定序列if False:    series = pd.Series(['Dave', 'Cheng-Han', 359, 9001],                       index=['Instructor', 'Curriculum Manager',                              'Course Number', 'Power Level'])    print series['Instructor']    print ""    print series[['Instructor', 'Curriculum Manager', 'Course Number']]'''你也可以使用bool型操作来选择Series中特定的项'''# 将False改为True来看bool型索引if False:    cuteness = pd.Series([1, 2, 3, 4, 5], index=['Cockroach', 'Fish', 'Mini Pig',                                                 'Puppy', 'Kitten'])    print cuteness > 3    print ""    print cuteness[cuteness > 3]

下面来介绍一下Pandas的Dataframe:

import numpy as npimport pandas as pd'''下面的代码能帮助你理解Pandas中的Dataframe。你可以把Dataframe想成有行有列的表格,就像spreadsheet、数据库表或者R中的data.frame对象。''''''创建一个数据库可以把字典序的list来传给Dataframe构造器:1) 字典的key值将会作为列名。2) 相关的列值会填充到对应列名下。'''# 把False改为True来看Dataframes的创建if False:    data = {'year': [2010, 2011, 2012, 2011, 2012, 2010, 2011, 2012],            'team': ['Bears', 'Bears', 'Bears', 'Packers', 'Packers', 'Lions',                     'Lions', 'Lions'],            'wins': [11, 8, 10, 15, 11, 6, 10, 4],            'losses': [5, 8, 6, 1, 5, 10, 6, 12]}    football = pd.DataFrame(data)    print football'''Pandas同时也提供了一系列函数帮助你理解关于你数据框架的基本信息。比如:1) dtypes: 从每一列获得数据类型。2) describe: 用来看在dataframe中数字列的一些基本统计信息,比如count、mean、std等。3) head: 显示数据集中的前5行4) tail: 显示数据集中的最后5行'''# 把False改为True来看这些函数的使用if False:    data = {'year': [2010, 2011, 2012, 2011, 2012, 2010, 2011, 2012],            'team': ['Bears', 'Bears', 'Bears', 'Packers', 'Packers', 'Lions',                     'Lions', 'Lions'],            'wins': [11, 8, 10, 15, 11, 6, 10, 4],            'losses': [5, 8, 6, 1, 5, 10, 6, 12]}    football = pd.DataFrame(data)    print football.dtypes    print ""    print football.describe()    print ""    print football.head()    print ""    print football.tail()

下面介绍一下Pandas中索引数据框。

import pandas as pd'''你可以把DataFrame想成一组具有索引的Series集合,这会让你更容易选中你需要从DataFrame中选中的指定列。同时要注意两点:1) 选中DataFrame中单列会返回一个Series2) 选中DataFrame中多列会返回一个DataFrame'''# 把False改为True来看Series的索引if False:    data = {'year': [2010, 2011, 2012, 2011, 2012, 2010, 2011, 2012],            'team': ['Bears', 'Bears', 'Bears', 'Packers', 'Packers', 'Lions',                     'Lions', 'Lions'],            'wins': [11, 8, 10, 15, 11, 6, 10, 4],            'losses': [5, 8, 6, 1, 5, 10, 6, 12]}    football = pd.DataFrame(data)    print football['year']    print ''    print football.year  # football['year']的缩写    print ''    print football[['year', 'wins', 'losses']]'''有多种方法可以进行行选择。这里有一些通用的方法:   1) 切割   2) 个别的索引(通过loc或iloc)   3) bool型索引你也可以同时通过bool操作符像&(and)或|(or)来连接多个选择的要求。'''# 把False改为True来看bool型索引if False:    data = {'year': [2010, 2011, 2012, 2011, 2012, 2010, 2011, 2012],            'team': ['Bears', 'Bears', 'Bears', 'Packers', 'Packers', 'Lions',                     'Lions', 'Lions'],            'wins': [11, 8, 10, 15, 11, 6, 10, 4],            'losses': [5, 8, 6, 1, 5, 10, 6, 12]}    football = pd.DataFrame(data)    print football.iloc[[0]]    print ""    print football.loc[[0]]    print ""    print football[3:5]    print ""    print football[football.wins > 10]    print ""    print football[(football.wins > 10) & (football.team == "Packers")]
1 0
原创粉丝点击