python axis 1_科学网—Python初学之解读MDFA模块(2):解读 def rwalk(X, axis=-1) - 刘磊的博文...
初稿:2018-10-19
转载请注明:科研菜鸟:http://blog.sciencenet.cn/home.php?mod=spacecp&ac=blog
Multifractal Detrended Fluctuation Analysis (MDFA)是计算非平稳序列多重分形谱的一种实用算法。本文解读MDFA的python模块(pymdfa.py),该代码由Copyright (c) 2014 Peter Jurica @ RIKEN Brain Science Institute, Japan提供。
pymdfa.py 主要由5个可由用户调用的函数:
__all__ = ["fastRMS","compRMS","compFq","simpleRMS","rwalk"]
和一个用户不可调用的函数:
def rw(X,w,step=1):
组成。本文将在python初学者的基础上讲解函数rwalk(X, axis=-1)。
通过理解rwalk(X, axis=-1)函数,可掌握解引用和数组维度的概念以及numpy模块中reshape、cumsum函数的用法。
函数rwalk(X, axis=-1)
功能: .计算X在axis维度方向元素的去平均累积和
,默认的是对横向元素(axis=-1)进行上述运算。
源代码:def rwalk(X, axis=-1):
"""Compute cumulative sum and subtract mean.
This function computes the sum along the last dimension.
Parameters
----------
X: array
axis: array dimension along which to compute (default -1, the last dimension)
"""
shp = list(X.shape) # change a tuple to a list
shp[axis] = 1
return numpy.cumsum(X - X.mean(axis).reshape(*shp), axis) # *shp表示将shp list的两个值分开,分别赋值给reshape的两个参数,这种赋值方式成为解引用,相关概念参考文后NOTE。
# cumsum第二个参数表示沿第axis个维度进行累积和操作,具体应用参考文后NOTE
# reshape用法参考文后NOTE
# X.mean(axis):axis方向求平均#运行示例import numpy
x = numpy.array([[1,2],[3,4]])
print(rwalk(x))[[-0.5 0. ]
[-0.5 0. ]]
NOTE解引用
在list\tuple变量中均可用*实现解应用,在dictionary变量中用*实现对key的解引用,用**实现对value的解引用。下面是一些例子:def fun(a,b,c):
print(a)
print(b)
print(c)
x=[1,2,'WO']
y=(1,2,'WO')
z={'a':1,'b':2,'c':'WO'}
z0={'b':1,'c':2,'a':'WO'}
fun(*x)
print()
fun(*y)
print()
fun(*z)# *z调用z中的keyprint()
fun(**z) # **z调用z中的valueprint()
fun(*z0)# *z0 key按元素顺序解print()
fun(**z0) # **z0 value不按元素顺序解1
2
WO
1
2
WO
a
b
c
1
2
WO
b
c
a
WO
1
2数组维度
数数组的方括号嵌套数,就可以知道数组是几维的,例如[1,2,3]是1D数组,[[1,2],[3,4]]是2D数组,[[[1,2],[3,4]],[[5,6],[7,8]]]是3D数组。数组的维度约定按从高到低排列,例如:import numpy as np
x = np.array([1,2,3,4]) # 1D 数组,数组维度上元素数量记作 (4,)print(x.shape)
x = np.array([[1,2,3],[3,4,5]]) # 2D数组,数组各维度上元素数量记作 (2,3),约定列方向(竖向)是比行方向(横向)更高维度,列方向数量排在前面print(x.shape)
x = np.array([[[1,2,1],[3,4,1],[5,6,1],[7,8,1]],[[5,6,1],[7,8,1],[3,4,1],[1,2,1]]]) # 顺数第二层括号对有两个,这是最高维,因此最高维有2个元素,剩下维度与2D数组排序同print(x.shape)(4,)
(2, 3)
(2, 4, 3)CUMSUM
cumsum函数用于求累积和,主要用法如下示例:import numpy as np
x = np.array([[1,2],[3,4]])
print(np.cumsum(x)) # 如果不指定累积和维度,cumsum先将x按C_contiguous方式reshape成一维数组后再求累积和print(x.cumsum()) # 另外一种调用方法print(np.cumsum(x,0)) # 按最高维度方向进行元素累积和,本例中竖向元素求累积和print(np.cumsum(x,1)) # 横向元素累积和[ 1 3 6 10]
[ 1 3 6 10]
[[1 2]
[4 6]]
[[1 3]
[3 7]]RESHAPE
‘reshape’函数返回一个对原数组变形后的新数组,具体说,就是内存中按某一contiguous排列的数,按新数组维度从高到低排列,这种功能与numpy.lib.stride_tricks.as_strided函数在某种参数设定下相同。主要用法如下示例:import numpy as np
x = np.arange(10)
print(x.reshape(2,5))
print(np.reshape(x,(2,5))) #这是另一种reshape的方法,注意,这种方法的参数必须是一个tupleprint(x.shape) # reshape函数默认设置本身并不改变x的结构,只是返回了一个形变的viewy = np.reshape(x,(2,5))
x[0]=-1print(y) # 由于reshape返回的是view,x的值变,y的相应值也变化# 要改变x的shape结构,有两种方法:# 方法一:reshape后返回给自身x = np.arange(12)
x = x.reshape(2,6)
print(x)# 方法二:使用resize函数x.resize(3,4)
print(x)# reshape 与 as_strided 函数的等价性from numpy.lib.stride_tricks import as_strided as ast
x = np.arange(12)
print(ast(x,(2,6),(24,4)))
print(x.shape) # 这种方法也不改变x的结构本身,ast返回的也只是个viewprint(ast(x,(3,4),(16,4)))[[0 1 2 3 4]
[5 6 7 8 9]]
[[0 1 2 3 4]
[5 6 7 8 9]]
(10,)
[[-1 1 2 3 4]
[ 5 6 7 8 9]]
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]]
(12,)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
python axis 1_科学网—Python初学之解读MDFA模块(2):解读 def rwalk(X, axis=-1) - 刘磊的博文...相关推荐
- python序列_科学网—Python:序列(字符串、列表、元组)和序列函数 - 刘洋洋的博文...
Python中的序列,包括字符串(String).列表(List).元组(Tuple). 序列的索引 通过索引(index)访问及获得的序列的一个或多个元素,也叫切片. 正序: 0 到 N-1 倒序: ...
- python 网络_科学网-python 社会网络分析工具之networkx-郗强的博文
1.networkx 2.igraph 3.SNAP 1.networkx NetworkX是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网 ...
- python dataset[trans_科学网—Python GDAL 图像坐标,投影坐标,经纬度坐标 三者映射及运行错误解决 - 吴妍潼的博文...
题记: 写该博客是因为自己经常遇到这个问题,而我发现网络上关于这方面浏览量高的一些代码竟然都有误,每次照搬都被虐得很惨.有一些同志在某些博客下方留言说代码有问题,而博主没有回应,也没有更改错误.为了自 ...
- python 面板数据分析_科学网—Python中的结构化数据分析利器-Pandas简介 - 郑俊娟的博文...
此文转载于XXXXXX处... Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数 ...
- python编程口诀_科学网—Python编程技巧汇总 - 高关胤的博文
正在学习python编程,把一些小技巧记录下来备查 ======================计算技巧========================== 正常的条件语句如下if a>b:c= ...
- python可视化水平双向箭头_科学网—Python matplotlib quiver—画箭头、风场、量场图 - 张伟的博文...
用像素点坐标画图 箭头关键的一个参数是长度,长度可以通过参数scale来设置,如果你多次使用quiver(),只要保证参数scale一致,那么箭头长度就会与风速 的值成正比,可按照下面我贴出的代码那样 ...
- python对数运算符号_科学网—Python中算数运算符之注意及np.logspace - 张伟的博文...
(一)算数运算符 数字2 是一个整数的例子. 长整数 不过是大一些的整数. 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4. (-5+4j ...
- python shell背景颜色改变_科学网—Python Shell Background Color - 李旭的博文
ArcGIS在安装时就已经默认在本机安装了Python.可是,Python Shell的界面看起来太亮了,对眼睛不太好啊,如图1. 图1 在网上搜索一番,之前也有和我同样问题的帖子,不过,时间有点久了 ...
- python读取网站_科学网—python 获取网址 - 林清莹的博文
Python获取网址的内容# coding=utf-8 import urllib url = "http://www.baidu.com" data = urllib.urlop ...
最新文章
- go http的按序号发送,按序号接收
- iPhone因安全漏洞上热搜,苹果:暂时无法修复,法国总统也中招
- Ubuntu10.04各文件夹的作用
- Datepicker
- linux 高级IO函数之fcntl mmap/munmap
- java 蓝桥杯算法训练 特殊的数字四十
- 燃气灶电气线路图及原理_电气安装造价如何入门,核心知识已为你打包
- Spring MVC 使用优化建议
- Java开发中的23种设计模式
- 0017-Spark的HistoryServer不能查看到所有历史作业分析
- SQL Server 不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项
- java 1.5.0 gcj_Ubuntu下GCJ的使用
- mysqldump关于--set-gtid-purged=OFF的使用(好文章!!)
- 傲腾内存 可以用ghost系统_光影精灵傲腾版笔记本安装win10系统操作教程
- win7网上邻居_win7系统网上邻居在哪
- excel组合汇总_Excel汇总20150105
- 一分钟学会接网线(网络传输介质详解及布线连接)
- Fiddler抓部分app时网络连接失败
- 你会的还只有初级工程师的技术吗?灵魂拷问
- java项目遇到难题_Java项目遇到的常见问题