您的位置:首页 > 编程语言 > Python开发

introduction to python for statistics,analysis笔记3

2016-04-16 23:04 656 查看
一、产生数组和矩阵

1、linspace(start,end,number),产生在start和end数之间number个数

>>>x=linspace(0,10,11)
>>>x
array([0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.])


2、logspace(start,end,number)产生number个数,在10**start,10**end之间,相当于指数函数,在x轴平均分成number个数,求指数。

和10**linspace(start,end,number)效果一样

3、arange(l,u,s)

4、meshgrid()

>>>x=arange(5)
>>>y=arange(3)
>>>X,Y=meshgrid(x,y)
>>>X
array([[0,1,2,3,4],
[0,1,2,3,4],
[0,1,2,3,4]])
>>>Y
array([[0,0,0,0,0],
[1,1,1,1,1],
[2,2,2,2,2]])


5、ix_(a,b)不规则选取元素,其中a,b可以是列表或元组

>>>x=reshape(arange(25.0),(5,5))
>>>x
array([[0.,1.,2.,3.,4.],
[5.,6.,7.,8.,9.],
[10.,11.,12.,13.,14.],
[15.,16.,17.,18.,19.],
[20.,21.,22.,23.,24.]])
>>>x[ix_([2,3],[0,1,2])]#Rows2&3,cols0,1and2
array([[10.,11.,12.],
[15.,16.,17.]])
>>>x[2:4,:3]#Same,standardslice
array([[10.,11.,12.],
[15.,16.,17.]])
>>>x[ix_([0,3],[0,1,4])]#Nosliceequiv


二、近似

1、around,round

x=np.random.randn(3)

printx

printnp.around(x)

printnp.around(x,2)#近似精度为2位小数


[0.230739311.08865135-0.95564268]
[0.1.-1.]
[0.231.09-0.96]


2、floor(x)、ceil(x)、

三、统计特性

1/sum,计算和

a=np.reshape(np.arange(10),(2,5));
printa,'\n'
printnp.sum(a),'\n'
printnp.sum(a,0),'\n'
printnp.sum(a,1)
[[01234]
[56789]]

45

[5791113]

[1035]


2/prod跟sum一样的特性,他是计算乘积的

a=np.reshape(np.arange(1,5),(2,2));
printa,'\n'
​
printnp.prod(a),'\n'
printnp.prod(a,0),'\n'
printnp.prod(a,1),'\n'
[[12]
[34]]

24

[38]

[212]


3、exp、[b]log--相当于ln()、[b]log10、[b]sqrt、[b]square、[b]absolute,abs、[b]sign都是对元素的操作[/b][/b][/b][/b][/b][/b]

a=np.random.randn(2,3);
printa,'\n'
printnp.abs(a)
printnp.sign(a)

[[-0.35632202-0.56913468-0.5054189]
[-0.131820241.629140281.57704769]]

[[0.356322020.569134680.5054189]
[0.131820241.629140281.57704769]]
[[-1.-1.-1.]
[-1.1.1.]]


4、对于复数的运算,下列运算也是元素的运算

real(A)或A.real,复数的实部

[b]imag(A)或A.imag,复数的虚部[/b]

conj(A),conjugate,共轭复数

5、[b]unique(A)是对所有元素操作,相当于python中的set(),去重效果[/b]

[b]6、in1d(A,B)[/b]

>>>x=arange(10.0)
>>>y=arange(5.0,15.0)
>>>in1d(x,y)
array([False,False,False,False,False,True,True,True,True,True],dtype=bool)


7、union1d(A,B),returnstheuniquesetofelementsin2arrays.相当于集合并

8、[b]intersect1d(A,B)相当于集合中的取交[/b]

[b]9、[b]setdiff1d(A,B),在集合A中,不在集合B中[/b][/b]

[b][b]10、[b]setxor1d(A,B),相当于取集合异或,只在一个集合中的元素[/b][/b][/b]

[b][b][b]11、sort[/b][/b][/b]

a=np.random.randn(2,3);
printa
printnp.sort(a,1)
printnp.sort(a,0)
printnp.sort(a,None)

[[2.33262004-2.175795111.02508041]
[-0.116513211.026738821.25183328]]

[[-2.175795111.025080412.33262004]
[-0.116513211.026738821.25183328]]

[[-0.11651321-2.175795111.02508041]
[2.332620041.026738821.25183328]]

[-2.17579511-0.116513211.025080411.026738821.251833282.33262004]


注意:A.sort()和sort(A)之间的不同,一个会改变数据结构,一个不会。

>>>x=randn(3)
>>>x
array([2.70362768,-0.80380223,-0.10376901])
>>>sort(x)
array([-0.80380223,-0.10376901,2.70362768])
>>>x
array([2.70362768,-0.80380223,-0.10376901])
>>>x.sort()#In-place,changesx
>>>x
array([-0.80380223,-0.10376901,2.70362768])


12、max,amax,argmax,min,amin,argmin

max是数组的方法,amax是函数,argtmax返回

a=np.random.randn(3,5);
printa
printnp.amax(a,1)
printnp.amax(a,0)
printnp.amax(a,None)

[[-1.20363617e-016.09840964e-01-2.42821192e-01-1.87136859e+00
-9.24036132e-01]
[-2.12137767e-04-4.49847000e-016.05104140e-025.00253683e-01
1.63359279e+00]
[-3.41458128e-01-9.52592527e-018.66845911e-01-1.26919405e+00
1.67080515e+00]]

[0.609840961.633592791.67080515]

[-2.12137767e-046.09840964e-018.66845911e-015.00253683e-01
1.67080515e+00]

1.67080515388


13、minimum(A,B),maximum(A,B)比较两个数组,返回两个数组对应位置中最小的或最大的数


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: