Python 一些常用函数 使用

Python 一些常用函数 使用1 import numpy as np 1 1 函数 np cumsum array 返回 array 数组的累计和 eg 若 a np array 1 2 3 4 5 6 7 b np cumcsum a print b 结果为 1 3 6 10 15 21 28 1 2

大家好,我是讯享网,很高兴认识大家。

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))


小讯
上一篇 2025-03-24 23:41
下一篇 2025-02-10 16:52

相关推荐

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