使用Python进行数据分析——NumPy基础

1.开发环境搭建
1.1 采用的是ipython +notebook编辑器,下载地址为http://www.enthought.com 的EPDFree安装包,windows中最好下载32位版本1.2 pandas 对应的应该在 http://pipy.python.org/pypi/pandas下载合适的二进制包
1.3 命令行中 $ ipython notebook --pylab=inline 检查 notebook 是否安装成功,安装成功后,输入命令后会自动在浏览器中打开编辑界面:

使用Python进行数据分析——NumPy基础_第1张图片
notebook编辑界面

2.Numpy 介绍
2.1 Numpy 是一个高性能的数据分析基础包,它的一个特点是其N维的数组对象(ndarray),它是一个通用的同构数据容器,其中所有元素必须是相同类型,每个数组都有一个shape (各维度大小的元组),和一个dtype(说明数组类型的对象)

mydata.shape
(15,)
mydata.dtype
dtype('int32')

2.2 ndarray的创建
调用np 库中的array 、asarray、arange、eye等等函数可以将输入数据转换成ndarray


mydata2 = np.array([[1,2,3],[3,4,5]])
mydata2 
array([[1, 2, 3],
       [3, 4, 5]])
mydata2.dtype
dtype('int32')
#将mydata2的数据类型转换出float64 更多类型参考P86 表4-2
array_f = mydata2.astype(np.float64)
array_f.dtype
dtype('float64')

2.3 数组的运算

#数组和标量的运算
In [13]:mydata2*3
Out[13]:
array([[ 3,  6,  9],
       [ 9, 12, 15]])

2.4 索引和切片

array2d = np.array([[1,2,3],[4,5,6],[7,8,9]])
#  :2   :取出二维数组中第一维中的下标为0,个数为2的元素
#  1:   : 取出二维数组中第二维中下标为1开始到最末尾的元素
array_cut = array2d[:2,1:]
array_cut
Out[15]:
array([[2, 3],
       [5, 6]])

2.5数组的转置和轴对换

#装置是将数据进行重塑,他返回的是源数据视图,简单的装置可以使用.T  (进行轴对换 )
array3 = np.arange(15).reshape((3,5))
array3
Out[17]:
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
In [18]:
array3.T
Out[18]:
array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14]])

2.6通用函数:元素级数组函数
通用函数ufunc 是一种对ndarray 中的数据执行元素级运算的函数,
一元ufunc举例:ads (计算各元素绝对值) 、sqrt(平方根)、exp(计算个元素的指数e^x)......
二元ufunc: add(计算两数组中对应的元素和) subtract(从第一个数组中减去第二个数组中的元素).....

array4 = np.arange(10)
array_sqrt = np.exp(array4)
array_sqrt
Out[22]:
array([  1.00000000e+00,   2.71828183e+00,   7.38905610e+00,
         2.00855369e+01,   5.45981500e+01,   1.48413159e+02,
         4.03428793e+02,   1.09663316e+03,   2.98095799e+03,
         8.10308393e+03])

2.7排序
Numpy可以使用sort方法进行就地排序

array = np.random.randn(8)
array
Out[8]:
array([ 0.02808422, -0.78669214, -0.03038576, -0.0841979 , -0.44913758,
        1.13105672,  1.6344209 ,  1.95355504])
array.sort()
In [10]:
array
Out[10]:
array([-0.78669214, -0.44913758, -0.0841979 , -0.03038576,  0.02808422,
        1.13105672,  1.6344209 ,  1.95355504])

2.8 Numpy用于文件输入输出
np.save 和np.load 是读写磁盘数组数据的主要函数,保存格式默认为.npy

#将数组以二进制格式保存到磁盘
array = np.random.randn(8)
array
Out[8]:
array([ 0.02808422, -0.78669214, -0.03038576, -0.0841979 , -0.44913758,
        1.13105672,  1.6344209 ,  1.95355504])
array.sort()
array
Out[10]:
#得到一个排序后的数组
array([-0.78669214, -0.44913758, -0.0841979 , -0.03038576,  0.02808422,
        1.13105672,  1.6344209 ,  1.95355504])
#保存数组到D:/python2.7/workspace/Numpy_test/20170427/路劲下,并命名为some_array.npy
np.save("D:/python2.7/workspace/Numpy_test/20170427/some_array",array)
#取出路劲下的npy文件的内容,转化为ndarray 数组
get_array = np.load("D:/python2.7/workspace/Numpy_test/20170427/some_array.npy")
get_array
Out[13]:
array([-0.78669214, -0.44913758, -0.0841979 , -0.03038576,  0.02808422,
        1.13105672,  1.6344209 ,  1.95355504])

文件的存取

#将数组 get_array 以txt文本的格式保存到路劲下的文件中
np.savetxt("D:/python2.7/workspace/Numpy_test/20170427/array_test.txt",get_array)
In [15]:
new_array = np.loadtxt("D:/python2.7/workspace/Numpy_test/20170427/array_test.txt")
new_array
Out[15]:
array([-0.78669214, -0.44913758, -0.0841979 , -0.03038576,  0.02808422,
        1.13105672,  1.6344209 ,  1.95355504])

总结:
Numpy没有提供那么多高级的数据分析功能,它主要的功能集中在以下几点:
· 将数据转化为一个矢量数组来进行快速的数据整理、清理、子集构造、转换等运算
· 可以使用数学函数、线性代数、随机数等 进行数组运算、集合运算、描述统计和数据聚合运算来处理数据
· 可以用于读写磁盘数据及操作内存映射文件
· Numpy提供了简单易用的C API 很容易将数据传递给低级语言(C、C++等),适用性很好

你可能感兴趣的:(使用Python进行数据分析——NumPy基础)