当前位置:网站首页>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
边栏推荐
- NameNode故障处理的两种方法
- 2022年最新重庆建筑安全员模拟题库及答案
- go中select语句
- PHP Serialization: eval
- log4j2的使用
- CentOS7 installation MySQL graphic detailed tutorial
- FastAPI encapsulates a generic response
- The 2nd activity of the TOGAF10 Standard Reading Club continues wonderfully, and the highlights will be reviewed!
- 关于我放弃考研这件事儿
- Optimization of five data submission methods
猜你喜欢
中望3D 2023正式发布,设计仿真制造一体化缩短产品开发周期
【牛客刷题-SQL大厂面试真题】NO3.电商场景(某东商城)
C# 中的Async 和 Await 的用法详解
PyQt5快速开发与实战 10.1 获取城市天气预报
ADS与C#通信
IDEA版Postman插件Restful Fast Request,细节到位,功能好用
Edge Cloud Explained in Simple Depth | 4. Lifecycle Management
The 2nd activity of the TOGAF10 Standard Reading Club continues wonderfully, and the highlights will be reviewed!
尚硅谷–MySQL–基础篇(P1~P95)
函数递归1.0
随机推荐
2022年最新重庆建筑安全员模拟题库及答案
Selenium自动化测试之Selenium IDE
FIFO深度计算学习记录(汇总)
深圳某游戏研发公司每个工位都装监控,网友:堪比“坐牢”!
sqlalchemy determines whether a field of type array has at least one consistent data with an array
电商rpa是什么意思?跟电商rpi是一个意思吗?
一文吃透哈希表
Double non-one into bytes!!Pure dry goods sharing
ASM外部冗余是否可以替换磁盘
/run/NetworkManager占用空间过大
PHP序列化:eval
【OpenCV】-边缘检测汇总示例
PyQt5快速开发与实战 9.7 UI层的自动化测试
0X7FFFFFFF,0X80000000「建议收藏」
go中select语句
基于去噪自编码器的故障隔离与识别方法
抓住金三银四的尾巴,解锁程序员面试《刷题神器》
EasyMock日记1[通俗易懂]
C# 中的Async 和 Await 的用法详解
CentOS7 installation MySQL graphic detailed tutorial