numpy矩阵和向量的保存与加载,以及使用保存的向量进行相似度计算
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
使用 arange创建array数组
a = np.arange(0, 5)
print(a)
b = np.arange(5, 15)
print(b)
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)
print(li_arr)
li1_arr = np.array(li1)
print(li1_arr)
"""
[[1 2 3 5]
[4 5 6 8]]
"""
保存矩阵或者向量
np.save('arr.npy', li1_arr)
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)
"""
计算npy_res中的每个向量与cal_arr的相似度
"""
for arr in npy_res:
print(cosine_similarity_(arr, cal_arr))
"""
计算npz中的arr1对象中的向量与cal_arr的相似度
"""
for arr in npz_res['arr_0']:
print(arr)
print(cosine_similarity_(arr, cal_arr))
完整代码
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
"""
使用 arange创建array数组
"""
a = np.arange(0, 5)
print(a)
b = np.arange(5, 15)
print(b)
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)
print(li_arr)
li1_arr = np.array(li1)
print(li1_arr)
"""
[[1 2 3 5]
[4 5 6 8]]
"""
np.save('arr.npy', li1_arr)
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]]
"""
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)
"""
计算npy_res中的每个向量与cal_arr的相似度
"""
for arr in npy_res:
print(cosine_similarity_(arr, cal_arr))
"""
计算npz中的arr1对象中的向量与cal_arr的相似度
"""
for arr in npz_res['arr_0']:
print(arr)
print(cosine_similarity_(arr, cal_arr))