发牌SO 发表于 2015-12-3 10:29:39

python--numpy模块、spicy模块、 matplotlib模块

  一:numpy模块
  ndarray:存储单一数据类型的多维数组
  ufunc:能够对数组进行处理的函数(universal function object)



#numpy 中arange用法,指定开始值/终止值/步长来创建一维数组数组,但是数组不包括终值。
arange_array=np.arange(1,2,0.1)
re_arange_array=arange_array.reshape(2,5)#使用reshape重新定义数组的维度或者数组的大小
print "arange_array is array,it's %s " % arange_array
print "re_arange_array is:%s" % re_arange_array


#linspace函数通过指定开始值、终值和元素个数来创建一维数组,可以通过endpoint关键字指定
#是否包括终值,缺省设置是包括终值:
linspace_array=np.linspace(0, 1, 12)#创建的是等差数列!
print "linspace_array is: %s" % linspace_array



#logspace创建等比数列,产生起始值10^起始值,到10^终止值,n个值的一维数组
logspace_array=np.logspace(0,2,30)
print "logspace array is: %s" % logspace_array


def fun2(i,j):
return (i+1)*(j+1)
b=np.fromfunction(fun2,(9,9))
#fromfunction从函数创建数组,自定义函数,从函数中创建数组;
#frompyfunc的调用格式为frompyfunc(func, nin, nout),nin是此函数的输入参数的个数,nout是此函数的返回值的个数。
print 'b is:%s' %b
Data type objects (dtype) and 结构数组
  数据类型(data type object, ie. numpy.dtype的实例)描述的是array对象怎样解析内存中的固定大小的内存段。它描素了数据的一下几个方面:


[*]数据的类型(integer, float, Python object, etc.)
[*]数据的大小(how many bytes is in e.g. the integer)
[*]二进制位的存储顺序(little-endian or big-endian)
[*]如果数据类型(data type)是一条记录,即其他数据类型的组合(e.g., describing an array item consisting of an integer and a float),这和C语言里面的struct类似。


[*]记录的各个数据的名称是什么,怎么获取这个子数据。
[*]每个子数据的的类型是什么。
[*]每个子数据都使用哪一部分内存。


[*]如果数据是一个子数组,它的形状是什么。




import numpy as np;
persontype=np.dtype({ 'names':['name','age','weight'], 'formats':['S32','i','f']})
a = np.array([("zhuang",32,75.5),("wang",24,65.2)],dtype=persontype)
print a['name']
print a.strides
  扩展:常用tile函数和repeat函数扩展numpy模块
  1:numpy.tile(A,B)函数:重复A,B次,这里的B可以时int类型也可以是元组类型



>>> import numpy
>>> numpy.tile(,5)#在列方向上重复5次,默认行1次
array()
>>> numpy.tile(,(1,1))#在列方向上重复1次,行1次
array([])
>>> numpy.tile(,(2,1))#在列方向上重复1次,行2次
array([,
])
>>> numpy.tile(,(3,1))
array([,
,
])
>>> numpy.tile(,(1,3))#在列方向上重复3次,行1次
array([])
>>> numpy.tile(,(2,3))<span style="font-family: Arial, Helvetica, sans-serif;">#在列方向上重复3次,行2次</span>
array([,
])
  2:repeat(A):重复A次repeat():对应重复A次,B次



>>> from numpy import *
>>> repeat(7.,4)
array([ 7.,7.,7.,7.])
>>> a=array()
>>> a.repeat()
array()
>>> repeat(a,)
array()
>>> a=array([,])
>>> a.repeat(,axis=0)
array([,
,
,
,
])
>>> a.repeat(,axis=1)
array([,
])
>>>
  3:sum函数:
  sum(a,axis=0):普通的相加
  sum(axis=1) :将一个矩阵的每一行向量相加
  4:argsort函数:返回排序后元素在原对象中的下标,属于numpy中的函数
  区别于sort函数和sorted函数
  (1)、sort 只是list类型的内建函数,对其他非列表型序列不适用。
  (2)、sorted是所有类型的内建函数 ,返回排序后的对象,原对象不改变。进阶:sorted(a,key=...,reversed=True)



a=array([(5,4,3,2,6),(7,8,0,1,9)])
>>> a
array([,
])
>>> a.argsort()
array([,
], dtype=int64)
  5:zeros:创建0矩阵
  二:spicy模块
页: [1]
查看完整版本: python--numpy模块、spicy模块、 matplotlib模块