pdist()和squareform()函数实例详解

pdist()是一个计算距离的函数,得到的是一个对称矩阵,其中对角线为0。squareform()函数是对pdist()函数返回的矩阵的上三角形进行处理,然后从第一行开始取值,返回一个数组,变成一个稀疏矩阵,同时spuareform()函数还可以进行逆运算,把一个稀疏矩阵生成一个非稀疏矩阵。比如:欧氏距离,计算欧氏距离的例子如下:
距离计算规则如图:
在这里插入图片描述

 from scipy.spatial.distance import pdist, squareform
 
 x=np.random.rand(3)
 print(x)
 [0.15297464 0.24703217 0.95730516]

 y=np.random.rand(3)
 print(y)
 [0.71366508 0.36111799 0.5305526 ]

 x1=np.random.rand(5)
 print(x1)
 [0.93979333 0.21137943 0.55437114 0.15531124 0.06513814]

 y1=np.random.rand(5)
 print(y1)
 [0.17426077 0.51733583 0.93023109 0.28271652 0.40983225]

 A=np.vstack((x,y)).T
 print(A)
 [[0.15297464 0.71366508]
 [0.24703217 0.36111799]
 [0.95730516 0.5305526 ]]

 B=np.vstack((x1,y1)).T
 print(B)
 [[0.93979333 0.17426077]
 [0.21137943 0.51733583]
 [0.55437114 0.93023109]
 [0.15531124 0.28271652]
 [0.06513814 0.40983225]]

 C=np.vstack((A,B))
 print(C)
 [[0.15297464 0.71366508]
 [0.24703217 0.36111799]
 [0.95730516 0.5305526 ]
 [0.93979333 0.17426077]
 [0.21137943 0.51733583]
 [0.55437114 0.93023109]
 [0.15531124 0.28271652]
 [0.06513814 0.40983225]]

 distance=pdist(C, 'euclidean')
 print(distance)
 [0.36487843 0.82491076 0.95396051 0.20483235 0.45609208 0.43095489
 0.31627463 0.73020258 0.71751909 0.16023461 0.64679746 0.12066283
 0.18830432 0.35672193 0.74604282 0.56753741 0.83941466 0.9002974
 0.80516291 0.84855252 0.79194369 0.90582318 0.53677352 0.24122575
 0.18150354 0.7606076  0.71425758 0.1558512 ]

 D=squareform(distance)
 print(D)
 [[0.         0.36487843 0.82491076 0.95396051 0.20483235 0.45609208
  0.43095489 0.31627463]
 [0.36487843 0.         0.73020258 0.71751909 0.16023461 0.64679746
  0.12066283 0.18830432]
 [0.82491076 0.73020258 0.         0.35672193 0.74604282 0.56753741
  0.83941466 0.9002974 ]
 [0.95396051 0.71751909 0.35672193 0.         0.80516291 0.84855252
  0.79194369 0.90582318]
 [0.20483235 0.16023461 0.74604282 0.80516291 0.         0.53677352
  0.24122575 0.18150354]
 [0.45609208 0.64679746 0.56753741 0.84855252 0.53677352 0.
  0.7606076  0.71425758]
 [0.43095489 0.12066283 0.83941466 0.79194369 0.24122575 0.7606076
  0.         0.1558512 ]
 [0.31627463 0.18830432 0.9002974  0.90582318 0.18150354 0.71425758
  0.1558512  0.        ]]

 squareform(D)
 array([0.36487843, 0.82491076, 0.95396051, 0.20483235, 0.45609208,
       0.43095489, 0.31627463, 0.73020258, 0.71751909, 0.16023461,
       0.64679746, 0.12066283, 0.18830432, 0.35672193, 0.74604282,
       0.56753741, 0.83941466, 0.9002974 , 0.80516291, 0.84855252,
       0.79194369, 0.90582318, 0.53677352, 0.24122575, 0.18150354,
       0.7606076 , 0.71425758, 0.1558512 ])
  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Excel是一款非常强大的电子表格软件,其中包含了多种函数公式,可以满足用户对数据处理和数据分析的各种需求。这些函数公式可以极大地提高用户的工作效率,让用户更加便捷地完成各种复杂的数据处理任务。 《excel函数公式大全:13类451个函数实例详解》是一本关于Excel函数公式的实用手册,该手册共收录了13类451个函数的详细介绍和应用实例。其中包含的函数类型包括基础函数、文本函数、日期函数、时间函数、数学函数、统计函数、逻辑函数、信息函数、工程函数、财务函数、数据库函数、网络函数和宏函数等。 这本手册的内容非常丰富实用,每个函数都给出了详细的用法说明和应用实例,用户可以根据自己的需求快速地找到需要的函数,并直接应用于自己的工作中。除了基本的函数使用方法,手册还介绍了各种常见的应用场景和技巧,让用户能够更加深入地了解Excel函数公式的各种用法和实际应用。 Excel函数公式的使用范围非常广泛,无论是在企业的数据分析、财务管理、生产计划等领域,还是在个人的数据处理、图表制作、日程安排等方面,都可以发挥其极大的作用。因此,学习Excel函数公式,熟练掌握各种函数的详细用法和应用技巧,对于提高工作效率和数据分析能力都有很大的帮助。而《excel函数公式大全:13类451个函数实例详解》这本手册,就是一本非常好的学习材料,值得每个使用Excel的用户深入学习和掌握。 ### 回答2: Excel是全球最广泛使用的电子表格软件,许多人使用Excel进行数据分析、财务管理、制作图表等工作。Excel中包含着大量的函数和公式,可用于各种计算和处理数据。《Excel函数公式大全:13类451个函数实例详解》是一本详细介绍Excel函数和公式的书籍,其中包含了大量的实例和案例。 这本书主要分为13个章节,分别介绍了Excel中各种类型的函数和公式。首先是数学和三角函数,包括加减乘除、平方、开方、对数、三角函数等。其次是统计函数,包括平均值、标准差、方差、中位数、众数等。接着是日期和时间函数,可以用于计算时间差、日期差等。之后是逻辑函数,包括IF函数、AND函数、OR函数等。然后是文本函数,可以用于处理文本字符串。接下来是信息函数、查找和引用函数、数据验证函数、数组函数、数据库函数、宏与自定义函数和图表函数等。 每个章节都包含详细的解释和案例,可以帮助读者深入了解Excel中各种函数和公式的使用方法。本书的语言简单易懂,非常适合初学者和进阶者使用。读者可以根据自己的需要选择所需要的章节进行学习,可以帮助他们提高Excel的使用效率,并在工作中更好地应用Excel工具实现各种任务和计算。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值