当前位置:网站首页>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
边栏推荐
猜你喜欢
Google Chrome(谷歌浏览器)安装使用
Introduction to using NPM
PHP序列化:eval
IDEA版Postman插件Restful Fast Request,细节到位,功能好用
NPM 使用介绍
Invalid bound statement (not found)出现的原因和解决方法
ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法
CWE4.8 -- 2022年危害最大的25种软件安全问题
小试牛刀—猜数字游戏
The 2nd activity of the TOGAF10 Standard Reading Club continues wonderfully, and the highlights will be reviewed!
随机推荐
ADS与C#通信
ECCV2022:在Transformer上进行递归,不增参数,计算量还少!
网络层重点协议——IP协议
Golang - gin - pprof - use and safety
Banyan Tree Loan GPU Hardware Architecture
SAP message TK 248 solved
Anaconda安装labelImg图像标注软件
战略进攻能力的重要性,要远远高于战略防守能力
基于模糊预测与扩展卡尔曼滤波的野值剔除方法
深入浅出边缘云 | 4. 生命周期管理
365-day challenge LeetCode1000 questions - Day 044 Maximum element in the layer and level traversal
深圳某游戏研发公司每个工位都装监控,网友:堪比“坐牢”!
WPF中报错:“未将对象引用设置到对象的实例。”
函数的参数
0x80070570 The file or directory is damaged and cannot be deleted (how to delete 0x80070091)
报错:npm ERR code EPERM
小试牛刀—猜数字游戏
TensorRT安装及使用教程「建议收藏」
C#Assembly的使用
What should I do if selenium is reversed?