Numpy与Pandas

我们来讲一讲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 np
import 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中单列会返回一个Series
2) 选中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")]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值