设为首页 加入收藏

TOP

数据分析基础教程Numpy指南笔记(一)
2017-09-30 17:55:04 】 浏览:7019
Tags:数据分析 基础 教程 Numpy 指南 笔记

Numpy指南笔记

第2章:Numpy基础

创建多维数组
# coding:utf-8
import numpy as np
m=np.array([np.arange(2),np.arange(2)])
print m
print m.shape

 

一维数组切片和索引
# coding:utf-8
import numpy as np
a=np.arange(9)
print a
print a[3:7]
print a[:7:2] #用下标0-7,以2为步长选取元素

 

多维数组切片和索引
# coding:utf-8
import numpy as np
b=np.arange(24).reshape(2,3,4)
print b
print '-------------'
print 'b[0,0,0]',b[0,0,0]
print '-------------'
print 'b[:,0,0]',b[:,0,0]
print '-------------'
print 'b[0]',b[0]
print '-------------'
print 'b[0,1]',b[0,1]
print '-------------'
print 'b[0,1,::2]',b[0,1,::2] #上面数组间隔选取元素
print '-------------'
print 'b[:,1]',b[:,1]
print '-------------'
print 'b[0,:,1]',b[0,:,1]
print '-------------'
print 'b[0,:,-1]',b[0,:,-1] #第一层楼最后一列
print '-------------'
print 'b[0,::-1,-1]',b[0,::-1,-1] #反向选取第一层楼的最后一列的所有房间
print '-------------'
print 'b[0,::2,-1]',b[0,::2,-1] #数组切片中间隔的选定元素
print '-------------'
print 'b[::-1]',b[::-1] #第一层和第二层交换位置

 

改变数组的维度
ravel函数可以完成展平操作 shape 改变维度
# coding:utf-8
import numpy as np
b=np.arange(24).reshape(2,3,4)
print b
a= b.ravel()
print a
a.shape=(6,4) #设置数组维度
print a

 

数组的组合 np.hstack水平组合 np.vstack 垂直组合
# coding:utf-8
import numpy as np
a=np.arange(9).reshape(3,3)
print a
b=2*a
print b
print '--------------------'
print np.hstack((a,b)) #数组水平组合
print '--------------------'
print np.vstack((a,b)) #垂直组合

 

 

第3章:常用函数
import numpy as np
i2=np.eye(2) #2*2数组
np.savetxt(‘eye.txt’,i2) #存储文件

AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800 #很多数据其中一行
...

 


c,v=np.loadtxt(‘data.csv’,delimiter=’,’,usecols=(6,7),unpack=True) #设置分隔符号为,usecols的参数为一个元组,以获取第7字段和第8字段的数据。upack参数设置为True,意思是拆分存储不同列的数据
vwap=np.average(c,weights=v) #以v列的数据作为权重计算c的平均权重值
np.mean(c) #计算c的平均值

时间加权平均价格
t=np.arange(len(c)) #求出行数
np.average(c,weights=t)

h,l=np.loadtxt(‘data.csv’,delimiter=’,’,usecols=(4,5),unpack=True) #将每日最高价和最低价的数据载入数组
np.max(h) #获取该行最大值
np.min(l) #获取该行最小值
ptp计算数组的取值范围=max(array)-min(array)
np.ptp(h) np.ptp(l)
np.median(c) 找到中位数
np.msort(c) 将数组从小到大排序
np.var(c) 计算数组的方差
np.diff(c) 返回由相邻数组元素的插值构成的数组
np.std() 返回数组的标准差
np.where(数组>0) where函数可以根据指定的条件返回所有满足条件的数组元素的索引值
strptime() 函数根据指定的格式把一个时间字符串解析为时间元组。
converters:数据列和转换函数之间进行映射的字典
np.take(数组,索引) 获取数组索引值的元素值

 

x = np.array([[1, 2], [3, 4]])
>>> x.ravel()
array([1, 2, 3, 4])
p52没有完
第3章:便捷函数

np.corrcoef(bhp_returns,vale_returns) 计算两个矩阵的相关系数
[[1. 0.67841747
0.67841747 1.]] 右对角线是相关系数

poly=np.polyfi(长度,差值, )拟合一系列数据点 实际就是一个函数
np.polyval(poly,长度+1) 推断下一个值
vals=np.ployval(poly,t)
np.argmax(vals) 函数最大值
np.argmin(vals) 函数最小值
np.sign(change) change是数据列表 返回对应数据正负号对应列表
hanning函数是一个加权余弦的窗函数

 

 

第5章:矩阵和通用函数
a=np.mat('1 2 3;4 5 6;7 8 9') #创建矩阵 有空格
a.T 矩阵转置
a.I 矩阵求逆
A = np.mat(np.arange(9).reshape(3,3))

 

A = np.eye(2)

 

B=2*A

 

np.bmat('A B;A B')

 

a=np.arange(9)
print np.add.reduce(a) 求和结果36

a=np.array([2,6,5])
b=np.array([1,2,3])
print np.true_divide(a,b)


数组相除

a=np.arange(-4,4)
print a%2

 

[1,1,2,3,5,8,13,21]
a=np.matrix([[1,1],[1,0]]) 创建斐波那契数列矩阵
print (a**4)[0,0] 为5 该数列第5个数


第6章:深入学习NumPy模块
numpy.linalg模块包含线性代数的函数,使用这个模块可以计算逆矩阵,求特征值,解线性方程组以及求解行列式。
求逆矩阵
import numpy as np
A=np.mat('0 1 2;1 0 3;4 -3 8')
print A
inverse=np.linalg.inv(A)
print inverse

 

求解线性方程组的解
# coding:utf-8
import numpy as n

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇day5模块学习--yaml文件处理 下一篇day5模块学习--configparser模块

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目