当前位置:网站首页>numpy矩阵和向量的保存与加载,以及使用保存的向量进行相似度计算
numpy矩阵和向量的保存与加载,以及使用保存的向量进行相似度计算
2022-07-31 13:03:00 【BRYTLEVSON】
numpy矩阵和向量的保存与加载,以及使用保存的向量进行相似度计算
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
使用 arange创建array数组
a = np.arange(0, 5)
print(a) # [0 1 2 3 4]
b = np.arange(5, 15)
print(b) # [ 5 6 7 8 9 10 11 12 13 14]
b = b.reshape(2, 5)
print(b)
""" [[ 5 6 7 8 9] [10 11 12 13 14]] """
使用列表创建ndarray
li = [1, 2, 3, 4]
li1 = [[1, 2, 3, 5], [4, 5, 6, 8]]
li_arr = np.array(li) # # ndarry
print(li_arr) # [1 2 3 4]
li1_arr = np.array(li1) # ndarry
print(li1_arr)
""" [[1 2 3 5] [4 5 6 8]] """
保存矩阵或者向量
# 保存方式1 保存为npy
np.save('arr.npy', li1_arr)
# 保存方式2 保存为npz npz可以保存多个矩阵向量 其实就是将多个npy打包对象保存 默认是对象 键从attr1开始
np.savez('arr.npz', li1_arr, li_arr)
加载保存矩阵或者向量
npy_res = np.load('arr.npy')
print(npy_res)
""" [[1 2 3 5] [4 5 6 8]] """
使用读取的向量计算相似度
def cosine_similarity_(a, b):
""" 求余弦相似度或距离 :param a: :param b: :return: """
res = cosine_similarity(a.reshape(1, -1), b.reshape(1, -1))
return res[0][0]
cal_arr = np.asarray([1, 3, 4, 5])
print(cal_arr) # [1 3 4 5]
""" 计算npy_res中的每个向量与cal_arr的相似度 """
for arr in npy_res:
print(cosine_similarity_(arr, cal_arr)) # 0.9865867645279247 0.9787763071201612
""" 计算npz中的arr1对象中的向量与cal_arr的相似度 """
for arr in npz_res['arr_0']:
print(arr)
print(cosine_similarity_(arr, cal_arr)) # 0.9865867645279247 0.9787763071201612
完整代码
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
""" 使用 arange创建array数组 """
a = np.arange(0, 5)
print(a) # [0 1 2 3 4]
b = np.arange(5, 15)
print(b) # [ 5 6 7 8 9 10 11 12 13 14]
b = b.reshape(2, 5)
print(b)
""" [[ 5 6 7 8 9] [10 11 12 13 14]] """
""" 使用列表创建ndarray """
li = [1, 2, 3, 4]
li1 = [[1, 2, 3, 5], [4, 5, 6, 8]]
li_arr = np.array(li) # # ndarry
print(li_arr) # [1 2 3 4]
li1_arr = np.array(li1) # ndarry
print(li1_arr)
""" [[1 2 3 5] [4 5 6 8]] """
# 保存矩阵或者向量
# 保存方式1 保存为npy
np.save('arr.npy', li1_arr)
# 保存方式2 保存为npz npz可以保存多个矩阵向量 其实就是将多个npy打包对象保存 默认是对象 键从attr1开始
np.savez('arr.npz', li1_arr, li_arr)
# 加载保存的npy文件
npy_res = np.load('arr.npy')
print(npy_res)
""" [[1 2 3 5] [4 5 6 8]] """
# 加载保存的npz文件
npz_res = np.load('arr.npz')
npz_res = dict(npz_res)
print(npz_res)
""" {'arr_0': array([[1, 2, 3, 5], [4, 5, 6, 8]]), 'arr_1': array([1, 2, 3, 4])} """
""" 将读取的向量计算相似度 """
def cosine_similarity_(a, b):
""" 求余弦相似度或距离 :param a: :param b: :return: """
res = cosine_similarity(a.reshape(1, -1), b.reshape(1, -1))
return res[0][0]
cal_arr = np.asarray([1, 3, 4, 5])
print(cal_arr) # [1 3 4 5]
""" 计算npy_res中的每个向量与cal_arr的相似度 """
for arr in npy_res:
print(cosine_similarity_(arr, cal_arr)) # 0.9865867645279247 0.9787763071201612
""" 计算npz中的arr1对象中的向量与cal_arr的相似度 """
for arr in npz_res['arr_0']:
print(arr)
print(cosine_similarity_(arr, cal_arr)) # 0.9865867645279247 0.9787763071201612
边栏推荐
- 基于神经网络的多柔性梁耦合结构振动控制
- 小试牛刀—猜数字游戏
- 【CPU设计实战】简单流水线CPU设计
- 365-day challenge LeetCode1000 questions - Day 044 Maximum element in the layer and level traversal
- 2022年最新重庆建筑安全员模拟题库及答案
- 求一份常见Oracle故障模拟场景
- 0X7FFFFFFF,0X80000000「建议收藏」
- SAP 电商云 Spartacus UI 和 Accelerator UI 里的 ASM 模块
- Golang - gin - pprof - use and safety
- 行业案例 | 全面防护 赛宁助力能源工控安全建设
猜你喜欢

centos7安装mysql5.7

分布式监视 Zabbix 和 Prometheus 到底怎么选?千万别用错了!

网络协议及相关技术详解

ECCV2022: Recursion on Transformer without adding parameters and less computation!

小试牛刀—猜数字游戏

365-day challenge LeetCode1000 questions - Day 044 Maximum element in the layer and level traversal

ECCV2022:在Transformer上进行递归,不增参数,计算量还少!

ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法

PHP序列化:eval

ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that corresponds to your
随机推荐
跨境电商小知识之跨境电商物流定义以及方式讲解
Ali on three sides: MQ message loss, repetition, backlog problem, how to solve?
PyQt5 rapid development and actual combat 10.2 compound interest calculation && 10.3 refresh blog clicks
C#中+=的用法
Optimization of five data submission methods
基于verilog的CRC校验(汇总)
ASM module in SAP Ecommerce Cloud Spartacus UI and Accelerator UI
The function of SQL GROUP BY dependence
操作符详解
深入浅出边缘云 | 4. 生命周期管理
[CPU Design Practice] Simple Pipeline CPU Design
阿里三面:MQ 消息丢失、重复、积压问题,怎么解决?
C# List用法 List介绍
ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法
IDEA的database使用教程(使用mysql数据库)
log4j2的使用
CentOS7 安装MySQL 图文详细教程
深圳某游戏研发公司每个工位都装监控,网友:堪比“坐牢”!
JSP response对象简介说明
IDEA找不到Database解决方法