xbamboo

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

本文资料来自:Python for Data Analysis, Chapter 4

 文中实例查看地址:http://nbviewer.jupyter.org/github/RZAmber/for_blog/blob/master/learn_numpy.ipynb

1. NumPy简介

NumPy,Numerical Python简称,是科学计算和数据分析所用的基础包。对于数据分析师,主要关注以下几点:

  a: Fast vectorized arrya operations for data munging and cleaning(数据分析和清洗), subsetting and filtering(和过滤), transformation and any other kind of computations.

  b: Coomn array algortihsm like sorting, unique, and set operations

  c: Efficient descriptive statistics and aggregating/summarizing data

  d: Data alignment(数据调整) and relational data manipulations for merging(合并) and joining together heterogeneous data sets(异构数据集)

  e: Expressing conditional logic as arry expressions instead of loops with if-elif-else branches 存取ndarray会更快速

  f: Group-wise(分组) data manipulations

其中NumPy最常用的功能是a和e,主要作为传递数据的容器,对于比较关系型数据的或者图表类数据集,最常用的还是pandas。

2. NumPy数组:NumPy ndarray

2.1

ndarray:N-dimensional array。NumPy数组是一个多维数组对象(array object),主要包含实际的数据和描述这些数据的元数据(tuple)。 

通常通过调用这些元组来获得实际数据

要记住记下两点:

  同一个NumPy的多维数组的元素是同类型的。

  通过一个正整数元组(tuple)索引的元素表格(通常是元素是数字)。

在NumPy中维度(dimensions)叫做轴(axes),比如三维矩阵,每一个维度都是一个轴。

轴的个数,即数组的维数叫做秩(rank)。比如三维矩阵,秩为3,二维矩阵,秩为2。

维度以一个整数元组来表示,比如二维的一般为(2,3),表示2排3列的一个矩阵,秩为元组的长度:2,第一个维度长度为2,第二个维度长度为3。

2.2 

首先:import numpy as ynp

  2.2.1: creating ndarray:array function

     

           

    Numpy提供一个arrange函数,返回一个array数组而不是list

  

   np.arrange(32).reshape((8,4))生成0-31的8*4矩阵

   2.2.2: 基本索引(indexing)和slicing

  

  arr[n:m]:截取从第n为到底m-1位的数值

  要注意的是,array slice是原始数据的一个映射,对此进行的任何操作都会反映到原始数据上。可以说用copy()函数保留原始数值。

  

   2.2.2: 常用indexing 

  

  np.ix_函数:可以将两个一维整数型数组转换成一个索引组合,调取这个矩阵组合里面所有的数值

  

  上述就是调取了(1,0),(1,3),(1,1),(5,0),(5,3),(5,1),(7,0),(7,3),(7,1)共9个值

2.3 常用函数

  2.3.1: 数学类

  包括sqrt,exp,abs,add,subtract等

  np.mean()

  np.sum()

  axis参数:axis=1表示按照行,axis=0表示按照列

  2.3.2: sorting排列,unique

  函数:sort()

  numpy中最常用的一个组合逻辑(set logic)运算就是unique(),这个函数可以去掉数列中多次重复出现的值,返回形式为arra

 

  2.3.3: 生成随机数

  np.random.normal(size=(4,4))生成按照正态分布排列的4*4矩阵

  np.random.randn(5,4)生成5*4矩阵,按照正态分布排列,均值为0,标准差为1.

 

 

注:虽然这算是一个基础的总结,但不能保证理解全部准确无误。随着对不同函数的多次使用,如果有新的体会,我会及时回来更新。

 

 

 

    

posted on 2017-07-17 17:57  xbamboo  阅读(1461)  评论(0编辑  收藏  举报