svd奇异值分解法应用领域,svd 奇异值
本篇文章给大家谈谈svd奇异值分解法应用领域,以及svd 奇异值对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享svd奇异值分解法应用领域的知识,其中也会对svd 奇异值进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
1、numpy的应用场景和常用方法?
1. np.array 可将序列对象(如列表和元包)转换为数组,可以生成一维或多维数组,生成多维数组时要对齐。
a = [[1,2,3],[4,5,6]]
b = np.array(a)
2. 数组与列表的相互转换nbsp;
a = np.ones((2,2))
b = a.tolist()nbsp;# 数组转列表
c = [[1,2,3],[4,5,6]]
d = np.array(c)nbsp;# 列表转数组
e = [1,2,3],[4,5,6]
g = np.array(e)nbsp;#元组转数组
3. 低精度和高精度一起,会转换为高精度的
a = np.array((1,2.1,3,4,5,6))
b = a.reshape(2,3)
print(a.shape, a.dtype)
4. np.arange(n) 生成一维从0到n-1的向量,可以设定范围和步长,如np.arange(1,10,2)。Python 内置的range生成从0到n-1的列表,一般只用于for循环中。
a = np.arange(15)
for i in range(15):
print(i)
5. np.ones .zeros .empty 里面需要传 入一个元组或列表,来指定创建什么形状,同时可以指定数据类型dtype。
a = np.ones((2,2), dtype = int)
b = np.zeros(10)
6. np.astype 实现数据类型转换,string类型的数字(如#39;123#39;)也可以转换为int。
a = np.array((1,2,3,4))
print(a.dtype)
b = a.astype(np.float64)
print(b.dtype)
7. 大小相等的数组之间的任何运算都会元素级的,特别注意数组之间的乘法是元素级的,要实现矩阵乘法,需要用np.dot。
8. 数组的切片是原始数组的视图,数据在赋值时不会复制,想要复制数据,需要在切片后加.copy()
9. 数组切片用方括号[ ],切片的形式为[start:end:step], 在切片时起点和终点至少要指定一个。不指定的部分,表示一直到索引最开始或者最后。-1 可以表示最后一个元素,:表示复制原列表。索引有几种形式,如[1,2], [:,3],[:2,3:]nbsp;注意索引的结尾数要减1,开头不需要。还有花式索引,a[[1,2,3]] 取对应的行,a[:,[1,2,3]]取对应的列,花式索引会复制数据,注意a[[1,2,3],[1,2,3]] 取的是3个对应位置的数字。进行反向索引时,要在数字前全部加负号,如[-2: -10:-1] 表示取向量的倒数第2个到倒数第10个,步长为2; [-1::-1] nbsp;表示从最后一个按照步长为1一直取到第1个。
a = np.arange(30).reshape(6,5)
b = a[:2,3:]
c = a[[1,5,2]]
d = a[:,[3,4,1]]
a = b[b[:,0] == c, :] nbsp; ## nbsp;取出某列中所有满足特定值的所有行,此式子为取出b中第0行里所有值等于c的所有行
a = b[~b[:,0] == c, :] nbsp;## nbsp;反转,取出所有不满足该条件的
10. 数组之间的拼接有两种方法,hstack,vstack分别对应行拼接和列拼接;concatenate里axis=0对应列轴,=1对应横轴。hsplit, vsplit以及split(与concatenate对应)实现矩阵的指定份数的均等分。
a = np.ones((1,2))
b = np.zeros((3,2))
c =np.ones((3,3))
d = np.hstack((b,c))
e = np.concatenate((b,c),axis = 1)
f = np.vstack((a,b))
g, h, i = np.hsplit(c, 3)
11.nbsp;数组中最小最大元素的索引:np.argmin,np.argmax;数组中最小最大的元素:np.max,np.min。
a = np.arange(30).reshape(6,5)
b = np.argmax(a)
12. Python内置zip函数,可以将多个可迭代对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表,当所有对象长度不一致时,以短的为主。
a = np.array((1,2,3))
b = np.array((4,5,6))
c = zip(a,b)
for i, j in zip(a,b):
print(i,j)
13.nbsp;numpy.where(conditon[, x, y]) 条件逻辑表达式,方括号内可省去,如果条件为true,则其值取x,否则取y。 如果只有条件,则范围条件中非0元素的索引。其等效为 value = x if c else y for c, x, y in zip(condition, xarr, yarr)。
xarr = np.array([1.1, 1.2, 1.3, 1.4])
yarr = np.array([2.1, 2.2,2.3, 2.4])
condi = np.array([True, False, True, False])
value = np.where(condi, xarr, yarr)
14. 基础数学和统计方法中,sum,mean, std, var(方差), min, max, argmin, argmax (arg系列返回最值的索引), cumsum等可以分别针对数组整体,以及axis = 0 (y轴,向), = 1 (x轴, 横向)进行数据统计。
a = np.random.randn(5,5)nbsp;# 正态分布随机数
b = np.argmin(a)
c = np.argmin(a, axis = 0)
d = a.argmin(axis = 1)
15.nbsp;对布尔型数组的方法, Python里0与False, 非0元素与True对应,针对布尔型数组的方法有,sum统计true的个数,实质对0与1的求和,any判断是否有true, all判断是否全为true。
a = np.array([False, True, False, False])
print(a.sum())
print(a.any())
print(a.all())
16. sort对指定轴进行从小到大的排序, argsort 是间接排序、返回数值从小到大的索引
a = np.random.randn(5,3)
b = np.sort(a)nbsp;# 默认axis=0
b2 = np.sort(a, axis = 0)nbsp;
b3 = np.sort(a, axis = 1)
17.nbsp;唯一化和集合逻辑: unique返回矩阵中唯一值的序列(即所有出现过元素的序列),python内置的set只能针对向量,返回向量中的唯一值序列,该序列只能作为迭代序列,一般用于for循环等迭代中。intersect1d(x,y) x与y的交集, union1d(x,y) x与yd的并集, in1d(x,y) x中的元素是否在y集合中, setdiff1d(x,y) 集合差 setxor1d(x,y)异或。
a = np.array((#39;Bob#39;,#39;Alice#39;,#39;Joe#39;,#39;Will#39;,#39;Bob#39;,#39;Joe#39;))
b = np.unique(a)
a2 = np.array((1,2,3,4,2,3,1,5,3,2,6,5,7,6,4))
b2 = np.unique(a2)
a3 = np.array([[1,2,3],[2,3,4],[1,2,4]])
b3 = np.unique(a3)
for item in set(a2):
print (item)
18.nbsp;线性代数操作, 主要方法有dot(点乘), diag(返回方阵对角元素), trace(返回方阵的迹), det(行列式),nbsp;eig(f方阵特征值和特征向量), inv(方阵的逆), pinv(广义逆), qr(QR分解), svd(奇异值分解), slove(解方程AX=B)。
19. 在Anconda中,针对向量和数组的处理是不同的,向量不分行向量和列向量,形式为size a(3, ) 是长度为3的向量;数组为size a(3,1)。在编程时,要注意区分,最好把向量转为数组。
NumPy是一个Python的基本库,用于进行数组操作和数学运算。它的应用场景包括:
1. 数值计算:NumPy可以进行高效的数值计算,包括矩阵运算、线性代数、傅里叶变换、随机数生成等。
2. 数据分析:NumPy可以处理大量数据,并提供了快速高效的数据结构和函数,用于数据存储、排序、过滤、统计等操作,是数据科学和机器学习的重要工具。
3. 图像处理:NumPy可以处理图像数据,包括读取和保存图像,图像变换、滤波、显示等。
4. 信号处理:NumPy可以进行数字信号的处理和分析,比如滤波、傅里叶变换、频谱分析等。
5. 数值仿真:NumPy可以进行数值仿真,比如模拟物理系统、计算随机过程等。
常用的NumPy方法包括:
1. 创建数组:使用np.array()创建一维或多维数组,使用np.zeros()创建全零数组,使用np.ones()创建全一数组,使用np.arange()创建等差数列。
2. 数组运算:进行数组之间的运算,包括加减乘除、取模、幂运算等。
3. 数组索引和切片:通过索引和切片操作,获取数组中的特定元素或子数组。
4. 数组形状操作:包括转置、重塑、扩展等操作。
5. 数组计算:进行数组的统计计算,包括求和、均值、方差、最大值、最小值等。
6. 数组排序和筛选:对数组进行排序和筛选操作,包括排序、去重、筛选等。
7. 线性代数:进行矩阵运算,包括矩阵乘法、矩阵求逆、矩阵求解线性方程组等。
8. 傅里叶变换:进行傅里叶变换和反变换,用于信号处理和频谱分析。
9. 随机数生成:生成服从不同分布的随机数。
10. 文件输入/输出:读取和保存数组数据到文件,支持多种格式。
到此,以上就是小编对于svd奇异值分解法应用领域的问题就介绍到这了,希望介绍关于svd奇异值分解法应用领域的1点解答对大家有用。
本文由admin发布,不代表裸眼立体技术与虚拟现实研究中心立场,转载联系作者并注明出处:/yyly/10389.html