1.import numpy as np
1.1 函数np.cumsum(array) : 返回array数组的累计和
1.2 函数 np.sort() : 对数组array 排序 会改变array的顺序
栗子:
a = np.array([1,3,2,4]) a.sort() #改变a的结果 print (a) [1 2 3 4]
讯享网
不改变原数组栗子
讯享网b = np.sort(a) print (a) [1 3 2 4] print (b) [1 2 3 4]
1.3 函数np.searchsorted() :寻找某个数应该插在数组的什么位置上,这个数组必须是按序排列的
vs = [1,3,5,7,9] #vs是排序好了的 np.searchsorted(vs,4) Out[42]: 2
如果 vs是乱序的 可以这样使用:
讯享网vs =[5,7,9,1,3] np.searchsorted(vs,4,sorter=np.argsort(vs)) Out[44]: 2
1.4 random(N) 产生一个数组,数组元素是随机数0~1
栗子 :
random(5) Out[57]: array([0. , 0., 0., 0. , 0.])
1.5np.linalg.norm(求范数)
参考网址 : https://blog.csdn.net/hqh/article/details/
1.6 enumerate() python 内置函数
参考网址 :https://blog.csdn.net/churximi/article/details/
栗子:
讯享网list1 = ['a','b','c','d','e'] for index, item in enumerate(list1): print (index,item) 0 a 1 b 2 c 3 d 4 e
index 对应索引 item 对应元素
1.7 neff() 1.0/(∑ (w*w) )向量w 各元素 平方和 的导数
栗子:
a = [1,2,3,4] b = neff(a) print(b) b = 0.0
讯享网def neff(weights): return 1. / np.sum(np.square(weights))
1.8 np.average(): 加权平均
栗子
def estimate(particles, weights): """returns mean and variance of the weighted particles""" pos = particles[:, 0:2] mean = np.average(pos, weights=weights, axis=0) var = np.average((pos - mean)2, weights=weights, axis=0) return mean, var
1.9 np.empty((N,M)): 产生一个空的N行M列的矩阵 创建新数组、只分配空间
栗子:
讯享网 [154]: p = np.empty((7,3)) print (p) [[6.e-307 3.e-307 1.e-306] [7.e-307 1.e-307 1.e-306] [1.0e-307 8.0e-307 1.e-306] [7.e-307 1.0e-306 1.e-306] [2.e-306 1.e-306 2.e-306] [1.e-306 1.e-306 1.e-306] [1.e-306 1.e-306 2.e-312]]2.0
uniform(a,b,size=n) 产生 n个 在(a,b)区间的数据 数据程均匀分布
uniform(2,5,7) Out[156]: array([2., 4.0, 4. , 4. , 3., 2., 3.])
2.1 random(N)默认产生N个(0,1)之间的随机数, 返回数组 random([n,m])默认产生n*m个(0,1)之间的随机数 返回矩阵
讯享网# rand_num = a + random(n)*(b - a) p = 2 + random(10)*3 print(p) [3. 4. 4. 2. 3. 3.0 4. 2. 4. 2.]
实例 产生N个均匀分布的粒子
def create_uniform_particles(x_range, y_range, hdg_range, N): particles = np.empty((N, 3)) particles[:, 0] = uniform(x_range[0], x_range[1], size=N) particles[:, 1] = uniform(y_range[0], y_range[1], size=N) particles[:, 2] = uniform(hdg_range[0], hdg_range[1], size=N) particles[:, 2] %= 2 * np.pi return particles产生 产生N个高斯分布的粒子
讯享网def create_gaussian_particles(mean, std, N): particles = np.empty((N, 3)) particles[:, 0] = mean[0] + (randn(N) * std[0]) particles[:, 1] = mean[1] + (randn(N) * std[1]) particles[:, 2] = mean[2] + (randn(N) * std[2]) particles[:, 2] %= 2 * np.pi return particles
产生 服从 N~(mu,sigma) 的正态分布
def Gaussian(self, mu, sigma, x): # calculates the probability of x for 1-dim Gaussian with mean mu and var. sigma return exp(- ((mu - x) 2) / (sigma 2) / 2.0) / sqrt(2.0 * pi * (sigma 2))

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/62238.html