AI基石之向量数据库的技术基础
【摘要】 向量的概念在数学中,向量(也称为欧几里得向量、几何向量),指具有大小(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] [[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)