本文资料来自: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.
注:虽然这算是一个基础的总结,但不能保证理解全部准确无误。随着对不同函数的多次使用,如果有新的体会,我会及时回来更新。