python数据分析入门

什么是数据分析?

数据分析:就是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律.

数据分析三剑客:Numpy,Pandas,Matplotlb

NumPy简介

NumPy(Numerical python)是python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.

NumPy的前身Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。

NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含:

- 一个强大的N维数组对象ndarray

- 广播功能函数

- 整合 c/c++/Fortran 代码的工具

- 线性代数, 傅里叶变换、随机数生成等功能

NumPy应用

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。

SciPy 是一个开源的 Python 算法库和数学工具包。

SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。

Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。

入门

NumPy的主要对象是同构多维数组.他是一个元素表(通常是数字),都是相同的类型,有正整数元组索引,在NumPy维度中成为轴.

例如,3D空间中的点的坐标[1,2,1]具有一个轴,该轴有三个元素,所以说它的长度为3,在下面所示的例子中,数组有两个轴,第一个轴长度为2,第二个轴的长度为3.

[[ 1., 0., 0.],
 [ 0., 1., 2.]]

NumPy的数组类被调用ndarray它也被别名所知 array请注意,numpy.array这与标准Python库类不同array.array,后者只处理一维数组并提供较少的功能。ndarray对象更重要的属性是:

ndarray.ndim --- 数组的轴数(尺寸)

ndarray.shape --- 数组的大小,这是一个整数元组,表示每个维度中数组的大小,对于具有n行和m列的矩阵,shape将是(n,m).shape因此元组的长度是轴的数量ndim

ndarray.size --- 数组的元素总数。这等于元素的乘积shape

ndarray.itemsize --- 数组中每个元素的大小(以字节为单位)。例如,类型的元素数组float64itemsize8(= 64/8),而其中一个类型complex32itemsize4(= 32/8)。它相当于ndarray.dtype.itemsize

ndarray.data --- 包含数组实际元素的缓冲区。通常,我们不需要使用此属性,因为我们将使用索引工具访问数组中的元素。

例子:

>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5) # 创建一个二维数组
>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> a.shape # 查看每个维度中数组的大小
(3, 5)      # 3行5列
>>> a.ndim   # 数组的轴数,二维数组
2
>>> a.dtype.name # 描述数组中元素类型的对象
'int64'
>>> a.itemsize # 数组中每个元素的大小为8字节
8
>>> a.size # 数组的元素总数
15
>>> type(a)
<type 'numpy.ndarray'>
>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8]) # 创建一个数组
>>> type(b)
<type 'numpy.ndarray'>
>>> np.array([[1,2,3],['a','b',1.1]]) # 创建一个二维数组
array([['1', '2', '3'],
       ['a', 'b', '1.1']], dtype='<U11')

 注意:

  - numpy默认ndarray的所有元素的类型是相同的

       - 如果传进来的列表中包含不同的类型,则统一为统一类型,优先级 str > float > int

猜你喜欢

转载自www.cnblogs.com/baijinshuo/p/10485902.html