[TOC]
np初始化
np.arange()
np.random
1 | # random.randn(x1, x2, x3, ...) |
np.meshgrid()
生成网格点坐标矩阵
np.eye()
函数的原型:numpy.eye(N,M=None,k=0,dtype=<class ‘float’>,order=’C)
返回的是一个二维2的数组(N,M),对角线的地方为1,其余的地方为0.
参数介绍:
(1)N:int型,表示的是输出的行数
(2)M:int型,可选项,输出的列数,如果没有就默认为N
(3)k:int型,可选项,对角线的下标,默认为0表示的是主对角线,负数表示的是低对角,正数表示的是高对角。
(4)dtype:数据的类型,可选项,返回的数据的数据类型
(5)order:{‘C’,‘F’},可选项,也就是输出的数组的形式是按照C语言的行优先’C’,还是按照Fortran形式的列优先‘F’存储在内存中
案例:(普通的用法)
1 | import numpy as np |
1 | [[1. 0. 0.] |
高级用法:
1 | import numpy as np |
np.identity()
这个函数和之前的区别在于,这个只能创建方阵,也就是N=M
函数的原型:np.identity(n,dtype=None)
参数:n,int型表示的是输出的矩阵的行数和列数都是n
dtype:表示的是输出的类型,默认是float
返回的是nxn的主对角线为1,其余地方为0的数组
1 | import numpy as np |
np.ravel()
np.expand_dims()
1 | import numpy as np |
方式2
1 | import numpy as np |
np.sequeeze()
1 | import numpy as np |
另一种方式
1 | import numpy as np |
np.flatten()
两者的功能是一致的,将多维数组降为一维,但是两者的区别是返回拷贝还是返回视图
np.flatten()返回一份拷贝,对拷贝所做修改不会影响原始矩阵,
np.ravel()返回的是视图,修改时会影响原始矩阵
1 | import numpy as np |
1 | b: [1 2 3 4] |
allclose
1 | numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)[source] |
eg: 判断两个数据的误差小于2:
1 | np.allclose(a, b, atol=2) |
这两个数据,可以是相同维度的,例如
1 | a = [149.820974 188.13338026 145.44900513] |
diag
np.argmax()
1 | import numpy as np |
https://wenku.baidu.com/view/1d3dbe48ac1ffc4ffe4733687e21af45b307fe78.html
https://blog.csdn.net/weixin_38145317/article/details/79650188
np.where()
np.where(condition, x, y)
满足条件(condition),输出x,不满足输出y。
如果是一维数组,相当于[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
1 | >>> aa = np.arange(10) |
np.where(condition)
只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。
1 | 2,4,6,8,10]) a = np.array([ |
1 | bid_history = [0, 1, 2, 0, 2] |
np.repeat
1 | a = np.zeros(54, dtype=np.int8) |
Slice
:: (逆向序列)
1 | a = np.arange(10) |
1 | [0 1 2 3 4 5 6 7 8 9] |
statck相关
stack() Join a sequence of arrays along a new axis.
vstack() Stack along first axis. == np.concatenate(tup, axis=0)
hstack() Stack along second axis. (column wise). == np.concatenate(tup, axis=1)
dstack() Stack arrays in sequence depth wise (along third dimension).==np.concatenate(tup, axis=2)
concatenate() Join a sequence of arrays along an existing axis.
np.stack()
np.hstack()
np.vstack()
np.dstack()
np.concatenate()
np.split()
np.hsplit
np.vsplit
np.dsplit
1 | split : 1D; indices_or_sections ``[2, 3]`` would, for ``axis=0``, result in |
1 | import numpy as np |
Out:
1 | (4, 3) |
np矩阵运算:
mean 均值
var 方差
item
dot
数量积又称内积(Kronecker product)、点积(Dot product),对应元素相乘相加,结果是一个标量(即一个数)。
cross
向量积又称外积、叉积(Cross product)
multiply或
*
普通乘积:对应元素相乘,结果还是向量。
np.linalg
np.linalg.norm 求范数
序列化NP
bcolz
1 | Write: |
https://vimsky.com/zh-tw/examples/detail/python-method-bcolz.carray.html
pickle
path相关
glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:””, “?”, “[]”。””匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定范围内的字符,如:[0-9]匹配数字。
1 | import glob |