AI基石之向量数据库的技术基础

举报
tea_year 发表于 2025/05/06 16:25:23 2025/05/06
【摘要】 向量的概念在数学中,向量(也称为欧几里得向量、几何向量),指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。向量数据库向量数据库是专门用来存储和查询向量的数据库,其存储的向量来自于对文本、语音、图像、视频等的向量化。与传统数据库相比,向量数据库可以处理更多非结构化数据(比如图像和音频)。在机器学习和深度学习中,数...


向量的概念

在数学中,向量(也称为欧几里得向量、几何向量),指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。

向量数据库

向量数据库是专门用来存储和查询向量的数据库,其存储的向量来自于对文本、语音、图像、视频等的向量化。与传统数据库相比,向量数据库可以处理更多非结构化数据(比如图像和音频)。在机器学习和深度学习中,数据通常以向量形式表示。

python里的向量

问题:

常规python的array不支持多维、不支持数值运算。

arr1=[1,2,3]
arr2=[4,5,6]
​
现在要求让arr1和arr2的各个相同的索引项,进行累加操作?
循环?
#enumerate() 
for i,value in enumerate(arr1):
    arr3=arr1[i]+arr2[i]
    print(arr3)
#可以定义数组,将结果之  添加到数组;
#arr1 arr2都是数组的地址    + 作用就是链接
arr12=arr1+arr2
print(arr12)

Numpy

Numerical Python,首先需要安装numpy,

pip install numpy

numpy同质多维数组ndarray,有数组的特征,还可以进行数值运算。

ndarray的属性

属性 解释
ndim 维度,1维,2维,3维
shape 每个维度上的大小,n行m列的矩阵,shape(n,m)
size 数组的总个数,等于shape的元素乘积
dtype 数组中元素类型

ndarray的方法

方法 解释
array/arange/linspace/logspace 创造一组数
random.normal 随机 正态分布的数
random.randint 随机 均匀分布的数
mean 均值
var 方差

ndarray的初始化

#利用array/arange创建ndarray的数组
import numpy as np
#array()里面的参数 是元组  数组 列表 
a=np.array([[1,5,0],[4,5,6]])
b=np.array(([1,5,0],[4,5,6]))
​
#查看二者的类型看下是否变化了 
print(type(a))
print(type(b))   
#测试以前的类型
print(type([[1,5,0],[4,5,6]]))
print(type(([1,5,0],[4,5,6])))print(a)
print(b)

<class 'numpy.ndarray'> <class 'numpy.ndarray'> <class 'list'> <class 'tuple'> [[1 5 0] [4 5 6]] [[1 5 0] [4 5 6]]

#arange()创建数据,和range()类似
import numpy as np
a=np.arange(10)
print(a)
#arange(start,end,step增长量)
b=np.arange(1,2,0.1)
print(b)#linspace(),指定 等差数列
c=np.linspace(0,1,10)
print(c)

[0 1 2 3 4 5 6 7 8 9] [1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9] [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1. ]

查看ndarray数组的相关信息

#查看创建数组的相关信息
import numpy as np
#numpy的array方法
a=np.array([[1,5],[4,5,7],3],dtype=object)print(type(a))
print(a)
​
a2=np.array(([1,2,3,5,7],[2,4,6,8,10]))
print(type(a2))
print(a2)
​
#查看a a2数组中每个元素的类型
print(a.dtype)
print(a2.dtype)
​
#查看数组的行列
print(a.shape)
print(a2.shape)
​
#查看a的行数  a2的行数
print(a.shape[0])
print(a2.shape[0])
#列
# print(a.shape[1])
print(a2.shape[1])print('查看数组的维度')
#查看数组的维度
print(a.ndim)
print(a2.ndim)
​
#查看数组的转置 转置(Transpose) 是一种数组操作,用于交换数组的行和列(即调整数组的维度顺序)。在数学和编程中,转置通常用于矩阵运算、数据重塑等场景。
print(a.T)   #一维数组  的转置 没有变化是 其本身  
print(a2.T)
<class 'numpy.ndarray'>
[list([1, 5]) list([4, 5, 7]) 3]
<class 'numpy.ndarray'>
[[ 1  2  3  5  7]
 [ 2  4  6  8 10]]
object
int32
(3,)
(2, 5)
3
2
5
查看数组的维度
1
2
[list([1, 5]) list([4, 5, 7]) 3]
[[ 1  2]
 [ 2  4]
 [ 3  6]
 [ 5  8]
 [ 7 10]]
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。