numpy模块学习

1. numpy的核心或基础知识点:

NumPy是一个Python包,它是一个由多维数组对象和用于处理数组的例程集合组成的库,其核心结构是ndarray。

2. 各种基础函数的使用

np.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0) 创建一个数组,传入的参数的元素类型必须相同,如遇输入类型不同时可强制转化相同的

np.dtype 返回数组内数据的类型,使用时不需要括号和参数,与shape不同的是只有一种方式

np.shape(a) 返回数组的结构(即矩阵是几*几的,返回的是一个tuple型),且有两种方式得到最后的结果

np.size(a, axis=None) 求矩阵的元素个数,axis参数默认全量,1按行,0按列

np.reshape(a, newshape, order='C') 修改矩阵的行列排列注意:行限定之后列也就确定了,所以列可以以-1代替

b.shape=(a,c) 另一种修改数据b形状的方法,与reshape有相同的效果
image
np.ravel(a, order='C') 将矩阵a拉平,形成一行的向量

a.tolist() 将数据类型转化为list型

赋值操作 可通过"a[b]=y"形式将a中的b元素值修改为y值,其中b也可以是一个布尔类型
1)修改某个值

2)修改多个值
image
关于复制的各种操作
1).当复制使用赋值操作,如b=a,表示b与a指向同一个东西,且b与a的内存id是一样的;
2).当复制使用view()操作,如b=a.view(),表示b与a共用相同的值,改变b的数据,a的数据也会发生变化,但是b与a的内存id不一样,改变b的shape后a的shape不会变化;
3).当复制使用copy()操作,如b=a.copy(),表示b来自于a,但是之后就失去关系
判断== 可使用“==”来判断矩阵中是否存在某些值,其结果的返回值是布尔型

取值/切片
1)可采取"a[x,y]"或者a[b:p,d:f]的方式切片
取单个值:a[x,y]:由于下标从0开始a[x,y]表示取x+1行y+1列的值
取部分值:a[b:p,d:f]:获取左闭右开的区间矩阵,若所有行或者列可用":"代替

还有一种行列分别使用一个以为数组来取数:如
image
2)a[x] 其中x是一个布尔类型的数据,当作一个索引,这样就可以获取到布尔类型为TRUE的对应的数值

a.astype(dtype, order='K', casting='unsafe', subok=True, copy=True) 对矩阵中的数据结构强制类型转化

np.zeros(shape, dtype=float, order='C') 构造0矩阵 shape可传入一个元组tuple"(a,b)"

np.ones(shape, dtype=None, order='C') 构造1矩阵 shape可传入一个元组tuple"(a,b)"

np.arange(start,stop,step) 构造一个限定了起始、终止和步长的矩阵,包含起始值不包含终止值,默认初始为0

np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None,axis=0,) 构造一个限定了起始、终止和数量的矩阵,默认数量为50

np.random.random_sample(size=None) 产生随机数

np.sum(a,axis=None) 求和axis参数默认全量,1按行,0按列

平方 对矩阵a的每个元素求平方,可以使用a**2

a*b 两个矩阵的对于位置的元素进行相乘

np.dot(a, b, out=None) 线性代数上面的矩阵相乘(a的行乘以b的列)

np.exp(a) 对矩阵a以e为底求幂

np.sqrt(a) 对矩阵a中的元素开方

a.T 将矩阵转置(行列转换)

np.floor(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True) 向下取整

np.hstack((a,b)) 将矩阵a,b进行按行拼接

np.vstack((a,b)) 将矩阵a,b进行按列拼接

np.hsplit(ary, indices_or_sections) 将矩阵进行按行拆分,可平均拆分也可按照指定位置拆分

np.vsplit(ary, indices_or_sections) 将矩阵进行按列拆分,可平均拆分也可按照指定位置拆分

np.argmax(a, axis=None, out=None) 返回数值最大的索引值,axis参数默认全量,1按行,0按列

np.tile(A, reps) 对矩阵进行扩展

np.sort(a, axis=-1, kind='quicksort', order=None) axis默认按照行升序,axis=0按列,axis=None按全量(注:一维和二维的区别,axis=1在一维的时候有报错)

np.argsort(a, axis=-1, kind='quicksort', order=None) 升序并返回值的下标
axis默认按照行升序,axis=0按列,axis=None按全量

  • np.load()、np.loadtxt()、np.fromfile()读取数据,函数的使用详情可见读取数据函数使用
  • np.save()
  • genfromtxt(fname,dtype=<class 'float'>,comments='#',delimiter=None) 导入txt文件
    1)delimiter参数不能为空,否则导入的数据为空

    2)要求导入的数据格式都是完整的,即不能出现缺失值的现象,如出现缺失值则调用函数时会出现报错


    3)dtype参数默认时float类型,如果不是数值型则需要在参数中设定为str否则导入变为空**
posted @ 2019-08-28 09:14  蔓越煤  阅读(147)  评论(0编辑  收藏  举报