Python常用的Numpy包

简介: Python常用的Numpy包

Python量化炒股常用的Numpy包
Numpy包是高性能科学计算和数据分析的基础包,不是Python的标准包,是Python第三方包。这里使用聚宽JoinQuant量化炒股平台免费提供的基于Jupyter Notebook的研究平台。

初识Numpy包及量化炒股平台
Numpy包概述
NumPy(Numerical Python)是 Python 中用于科学计算的基础库,提供了强大的多维数组对象和相关工具,以及用于处理这些数组的数学函数。以下是关于 NumPy 包的概述:

主要特点

  1. 多维数组对象:NumPy 的核心是 ndarray 对象,它是一个具有相同类型、固定大小的数组,支持高效的数值运算。

  2. 矢量化操作:NumPy 提供了广播功能,使得在整个数组上执行操作更加简单和快速,避免了使用循环。

  3. 数学函数:NumPy 包含了许多数学函数,如三角函数、指数函数、对数函数等,可以直接应用于数组。

  4. 线性代数运算:NumPy 提供了丰富的线性代数函数,可以进行向量和矩阵运算、求逆、特征值分解等操作。

  5. 随机数生成:NumPy 提供了用于生成各种随机数的函数,包括均匀分布、正态分布等常见分布。

集成 C/C++/Fortran 代码:NumPy 是 Python 科学计算库的基础,为其他科学计算库提供了底层的数据结构支持。

安装 NumPy

在安装 Python 后,通常可以使用以下命令来安装 NumPy 包:

pip install numpy

导入 NumPy

import numpy as np

示例用法

import numpy as np

# 创建数组
arr = np.array([1, 2, 3, 4])
print(arr)

# 数组运算
result = arr + 10
print(result)

# 矩阵乘法
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
product_matrix = np.dot(matrix1, matrix2)
print(product_matrix)

# 统计函数
mean_value = np.mean(arr)
print(mean_value)

运行结果如下:

[1 2 3 4]
[11 12 13 14]
[[19 22]
 [43 50]]
2.5

NumPy 是 Python 中不可或缺的科学计算库之一,对于处理大规模数据、进行数学计算和实现算法非常有用。其高效的数组操作和广泛的功能使得 NumPy 成为许多数据科学家和工程师首选的库之一。

量化炒股平台
量化炒股平台是指利用计算机程序和算法来执行股票交易策略的平台。这些平台通常使用大量历史数据、数学模型和统计分析来制定投资决策,以取代传统的人工交易。现在比较流行的量化炒股平台,如聚宽(JoinQuant)、优矿(Uqer)、米筐(Ricequant)等,大体上提供类似的服务。

单击导航栏中的”策略研究“选项,就会弹出下拉菜单,然后单击”研究环境“命令,如下图所示,就可以进入Jupyter Notebook的研究平台。单击“新建”按钮,弹出下拉菜单,然后单击“Python3“命令,如下图所示,就可以新建Python3文件。

image.png
image.png

ndarray数组基础
在 NumPy 中,ndarray 是表示多维数组的主要数据结构。它提供了许多功能和方法来操作数组数据。以下是一些常见的 ndarray 的用法示例:

创建数组:

import numpy as np

# 从列表创建一维数组
arr = np.array([1, 2, 3, 4])
print(arr)

# 从列表创建二维数组
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)

# 创建全零数组
zeros_arr = np.zeros((2, 3))
print(zeros_arr)

# 创建全一数组
ones_arr = np.ones((3, 3))
print(ones_arr)

运行结果如下:

[1 2 3 4]
[[1 2 3]
 [4 5 6]]
[[0.0 0.0 0.0]
 [0.0 0.0 0.0]]
[[1.0 1.0 1.0]
 [1.0 1.0 1.0]
 [1.0 1.0 1.0]]

数组索引和切片:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

# 访问元素
print(arr[0])

# 切片
print(arr[1:3])

# 使用负数索引
print(arr[-1])

运行结果如下:

1
[2 3]
5

数组运算:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 数组相加
sum_arr = arr1 + arr2
print(sum_arr)

# 数组乘法(逐元素相乘)
product_arr = arr1 * arr2
print(product_arr)

运算如下:

[5 7 9]
[4 10 18]
1.
2.
**数组形状和维度:**
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

# 数组形状
print(arr.shape)

# 数组维度
print(arr.ndim)

# 改变数组形状
reshaped_arr = arr.reshape(3, 2)
print(reshaped_arr)

运行结果如下:

(2, 3) # 232
[[1 2]
 [3 4]
 [5 6]]

常见统计函数:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

# 计算平均值
mean_value = np.mean(arr)
print(mean_value)

# 计算标准差
std_deviation = np.std(arr)
print(std_deviation)

# 求和
sum_value = np.sum(arr)
print(sum_value)

运行结果如下:

3.0
1.4142135623730951
15

ndarray 对象提供了丰富的功能和方法,可以进行高效的数组操作、数学运算和统计分析。通过熟悉和灵活运用 ndarray 的相关用法,可以更好地处理和操作多维数组数据。

在新的单元格中输入如下代码:

myb = np.array([11, 25, 36,89], dtype=complex)
print('利用for循环显示数组中的数据:')
for a in myb:
    print(a)

由于包一次导入,以后可以随便使用,这里不再需要导入numpy包。这里设置了一维数组的数据类型,默认为整型,这里设置为复数类型,最后用for循环显示数组中的数据。运行结构如下:

利用for循环显示数组中的数据:
(11+0j)
(25+0j)
(36+0j)
(89+0j)

在新单元格中输入如下代码:

myc = np.array([[11, 25, 36,89], [20,50,60,90]])
print('显示二维数组中的数据:\n', myc)
print('\n\n第二行中的第三个数据:', myc[1][2])

运行结果如下:

显示二维数组中的数据:
 [[11 25 36 89]
 [20 50 60 90]]


第二行中的第三个数据: 60

Numpy特殊数组
NumPy 提供了许多特殊类型的数组,这些数组具有特定的结构或形状,适用于不同的数学和科学计算任务。以下是一些常见的特殊数组:

零数组(Zero Array):

import numpy as np

# 创建全零数组
zeros_arr = np.zeros((2, 3))
print(zeros_arr)

全一数组(Ones Array):

import numpy as np

# 创建全一数组
ones_arr = np.ones((3, 3))
print(ones_arr)

对角线数组(Diagonal Array):

import numpy as np

# 创建对角线数组
diag_arr = np.diag([1, 2, 3])
print(diag_arr)

单位矩阵(Identity Matrix):

import numpy as np

# 创建单位矩阵
identity_matrix = np.eye(3)
print(identity_matrix)

随机数组(Random Array):

import numpy as np

# 创建随机数组
random_arr = np.random.rand(2, 2)
print(random_arr)

等差数列(Arange Array):

import numpy as np

# 创建等差数列
range_arr = np.arange(0, 10, 2)
print(range_arr)

正态分布随机数组(Normal Distribution Random Array)

import numpy as np

# 创建正态分布随机数组
normal_dist_arr = np.random.normal(0, 1, (2, 2))
print(normal_dist_arr)

Meshgrid 数组:

import numpy as np

# 创建网格点坐标数组
x = np.array([1, 2, 3])
y = np.array([4, 5])
X, Y = np.meshgrid(x, y)
print(X)
print(Y)

empty数组:

import numpy as np

# 创建一个形状为 (2, 3) 的空数组
empty_arr = np.empty((2, 3))
print(empty_arr)

这些特殊数组可以帮助在不同的场景下更有效地进行数据处理、模拟和分析。根据具体需求选择合适的特殊数组类型,在 NumPy 中灵活应用这些特殊数组将提高编程效率和数据处理能力。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
# 一维数组,默认类型为float
mya = np.zeros(6)
print('zeros一维数组:\n', mya)
# 二维数组,设置数据类型为int
myb = np.zeros((3,3), dtype=np.int)
print('zeros二维数组:\n', myb)
# 二维数组,默认类型为flaot
myc = np.ones((6,4))
print('ones二维数组:\n', myc)
# empty数组
myd = np.empty((2,4))
print('empty二维数组:\n', myd)

单击工具栏中的运行键(run)按钮,运行结果如下:

zeros一维数组:
 [0.0 0.0 0.0 0.0 0.0 0.0]
zeros二维数组:
 [[0 0 0]
 [0 0 0]
 [0 0 0]]
ones二维数组:
 [[1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0]]
empty二维数组:
 [[5.4e-323 1.24e-322 1.8e-322 4.4e-322]
 [1e-322 2.47e-322 2.96e-322 4.45e-322]]

Numpy序列数组
在 NumPy 中,你可以使用 numpy.arange() 函数来创建一个序列数组,该函数会生成一个等差数列。以下是如何使用 numpy.arange() 来创建序列数组的示例:

import numpy as np

# 创建一个等差数列数组,起始值为 0,终止值为 10,步长为 2
sequence_arr = np.arange(0, 10, 2)
print(sequence_arr)

在这个示例中,np.arange(0, 10, 2) 创建了一个从 0 开始、到 10 结束(不包括 10)、步长为 2 的等差数列数组。输出结果将是 [0, 2, 4, 6, 8]。

除了 numpy.arange(),你还可以使用 numpy.linspace() 函数来创建序列数组,该函数会在给定的范围内生成指定数量的等分点。以下是使用 numpy.linspace() 的示例:

import numpy as np

# 创建一个包含5个元素的等间隔数组,起始值为 1,终止值为 10
sequence_arr = np.linspace(1, 10, 5)
print(sequence_arr)

在上面的示例中,np.linspace(1, 10, 5) 创建了一个包含 5 个元素的数组,这些元素均匀分布在区间 [1, 10] 内。输出结果将是 [1. 3.25 5.5 7.75 10. ]。

通过使用 numpy.arange() 和 numpy.linspace() 函数,你可以方便地创建等差数列或等间隔序列数组,适用于各种数学和科学计算任务。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
numpy1 = np.arange(1, 100, 2)
print('利用arrange函数创建等差序列数组:',numpy1)
print()
numpy2 = np.linspace(0,8,10)
print('利用linespace函数创建等差序列数组:',numpy2)

单击运行按钮,如下所示:

利用arrange函数创建等差序列数组: [1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51
 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99]

利用linespace函数创建等差序列数组: [0.0 0.8888888888888888 1.7777777777777777 2.6666666666666665
 3.5555555555555554 4.444444444444445 5.333333333333333 6.222222222222221
 7.111111111111111 8.0]

利用下标索引显示Numpy数组中元素的值
Numpy数组的每个元素、每行元素、没列元素都可以用下标索引访问,但应注意:下标索引是从0开始的,其操作与列表基本相同。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
numpy1 = np.array([[8,6,5.2],[72,-12,3.9]])
print('显示Numpy数组中所有元素:', numpy1)
print()
print('显示Numpy数组中第一行元素:',numpy1[0])
print()
print('显示Numpy数组第一行中的第二个元素:', numpy1[0,1])
print()
print('显示Numpy数组中第二行中的第三个元素:', numpy1[1,2])
print()
print('显示Numpy数组中第三列元素:', numpy1[:,2])

利用下标索引显示Numpy数组中的元素值,与列表相同,但需要注意显示某一行或某一列的写法。

单击运行按钮,运行效果如下:

显示Numpy数组中所有元素: [[8.0 6.0 5.2]
 [72.0 -12.0 3.9]]

显示Numpy数组中第一行元素: [8.0 6.0 5.2]

显示Numpy数组第一行中的第二个元素: 6.0

显示Numpy数组中第二行中的第三个元素: 3.9

显示Numpy数组中第三列元素: [5.2 3.9]

Numpy数组运算
Numpy数组运算是指Numpy数组中元素的加、减、乘、除、乘方、最大值、最小值等运算。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
numpy1 = np.array([5,10,15])
numpy2 = np.array([2, 4, 6])
print('数组的加法运算', numpy1 + numpy2)
print('数组的减法运算', numpy1 - numpy2)
print('数组的乘法运算', numpy1 * numpy2)
print('数组的除法运算', numpy1 / numpy2)
print('numpy1数组的乘方运算', numpy1 ** 2)
print('数组的点乘运算', np.dot(numpy1, numpy2)) # 就是把数组的乘法运算得到的数再加起来
print('数组的大小比较', numpy1 >= numpy2)
print('numpy1数组的最大值', numpy1.max())
print('numpy2数组的最小值', numpy2.min())
print('numpy1数组的和', numpy1.sum())
print('numpy1和numpy2数组的和', numpy1.sum()+numpy2.sum())

单击工具栏中的运行按钮,效果如下:

数组的加法运算 [7 14 21]
数组的减法运算 [3 6 9]
数组的乘法运算 [10 40 90]
数组的除法运算 [2.5 2.5 2.5]
numpy1数组的乘方运算 [25 100 225]
数组的点乘运算 140
数组的大小比较 [True True True]
numpy1数组的最大值 15
numpy2数组的最小值 2
numpy1数组的和 30
numpy1和numpy2数组的和 42

Numpy的矩阵
矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,是高等数学中的常见工具,也常见于统计分析等应用数学学科中。在 NumPy 中,除了 ndarray(n-dimensional array,多维数组)之外,还提供了 numpy.matrix 类型,用于表示矩阵对象。numpy.matrix 是 ndarray 的子类,专门用于处理线性代数运算。以下是一些关于 numpy.matrix 对象的基本信息和示例用法:

创建矩阵:

import numpy as np

# 从列表创建矩阵
mat = np.matrix([[1, 2], [3, 4]])
print(mat)

转换为矩阵类型:

import numpy as np

arr = np.array([[1, 2], [3, 4]])
mat = np.mat(arr)  # 将数组转换为矩阵类型
print(mat)

矩阵乘法:

import numpy as np

mat1 = np.matrix([[1, 2], [3, 4]])
mat2 = np.matrix([[2, 0], [1, 2]])

result = mat1 * mat2
print(result)

求逆矩阵:

import numpy as np

mat = np.matrix([[1, 2], [3, 4]])
inverse_mat = mat.I  # 求逆矩阵
print(inverse_mat)

矩阵转置:

import numpy as np

mat = np.matrix([[1, 2], [3, 4]])
transposed_mat = mat.T  # 矩阵转置
print(transposed_mat)

获取矩阵元素:

import numpy as np

mat = np.matrix([[1, 2], [3, 4]])
element = mat[0, 1]  # 获取特定位置的元素
print(element)

NumPy 中的 numpy.matrix 类型特别适用于进行线性代数运算,如矩阵乘法、求逆矩阵等。然而,对于一般情况下的多维数组操作,通常建议使用普通的 ndarray 类型。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np

numpy1 = np.matrix([[2,4,6],[1,3,5]])
print('矩阵数据内容:')
print(numpy1)
numpy2 = numpy1.T         # 矩阵的转置
print('矩阵的转置后的数据内容:')
print(numpy2)
print('矩阵的乘法:')
print(numpy1*numpy2)
numpy3 = numpy1.I   # 矩阵的求逆
print('矩阵的求逆:')
print(numpy3)

单击工具栏中的运行按钮,效果如下:

矩阵数据内容:
[[2 4 6]
 [1 3 5]]
矩阵的转置后的数据内容:
[[2 1]
 [4 3]
 [6 5]]
矩阵的乘法:
[[56 44]
 [44 35]]
矩阵的求逆:
[[1.0833333333333348 -1.3333333333333355]
 [0.3333333333333349 -0.33333333333333537]
 [-0.416666666666668 0.6666666666666684]]

Numpy的线性代数
Numpy包含bumpy.linalg模块,提供线性代数所需的所有功能。

两个数组的点积
numpy.dot()函数返回两个数组的点积。对于二维向量,其等效于矩阵乘法;对于一维数组,它是向量的内积;对于N维数组,它是a的最后一个轴上的和与b的倒数第二个轴的乘积。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
a = np.array([[1, 2], [3,4]])
b = np.array([[11,12], [13, 14]])
print('返回两个数组的点积:')
print(np.dot(a, b))

运行结果如下:

返回两个数组的点积:
[[37 40]
 [85 92]]

注意:两个数组的点积计算为[[1x11+2x13, 1x12+2x14],[3x11+4x13,3x12+4x14]]

两个向量的点积
Numpy.vdot()函数返回两个向量的点积。如果第一个参数是复数,那么它的共轭复数会用于计算。如果参数id是多维数组,那么它会被展开。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[11, 12], [13, 14]])
print('返回两个向量的点积:')
print(np.vdot(a, b))

注意:两个向量的点积计算为1x11+2x12+3x13+4x14=130。

单击工具栏运行按钮,运行结果如下:

返回两个向量的点积:
130

数组的向量内积
单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
a = np.array([1, 2, 3])
b = np.array([0, 1, 0])
print('一维数组的向量内积:')
print(np.inner(a, b))
print()
c = np.array([[1,2], [3,4]])
d = np.array([[11, 12], [13, 14]])
print('多维数组的向量内积:')
print(np.inner(c,d))

注意:多维数组的向量内积计算如下。

1x11 + 2x12, 1x13+2x14

3x11+4x12, 3x13+4x14

单击工具栏运行按钮,运行结果如下:

一维数组的向量内积:
2

多维数组的向量内积:
[[35 41]
 [81 95]]

矩阵的行列式
行列式在线性代数中是非常有用的值,它从方阵的对角元素计算。对于2x2矩阵,它是左上和右下元素的乘积与其他两个的乘积的差。也就是说,对于矩阵[[a, b], [c, d]],行列式计算为ad-bc。较大的方阵被认为是2x2矩阵的组合。在Python中,是利用numpy.linalg.det()函数计算输入矩阵的行列式。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
a = np.array([[1, 2], [3, 4]])
print('矩阵的行列式:')
print(np.linalg.det(a))
b = np.array([[6,1,1], [4,-2,5],[2,8,7]])
print('较大的方阵的数据:')
print(b)
print()
print('较大的方阵行列式:')
print(np.linalg.det(b))
print()
print('较大的方阵的行列式的计算方法:')
c = 6*(-2*7 - 5*8) - 1 * (4*7 - 5*2) + 1*(4*8 - -2*2)
print('6*(-2*7 - 5*8) - 1 * (4*7 - 5*2) + 1*(4*8 - -2*2)=', c)

单击工具栏运行按钮,运行结果如下:

矩阵的行列式:
-2.0000000000000004
较大的方阵的数据:
[[6 1 1]
 [4 -2 5]
 [2 8 7]]

较大的方阵行列式:
-306.0

较大的方阵的行列式的计算方法:
6*(-2*7 - 5*8) - 1 * (4*7 - 5*2) + 1*(4*8 - -2*2)= -306

矩阵的逆
使用bumpy.linalg.inv()函数来计算矩阵的逆。矩阵的逆是指,如果它乘以原始矩阵,则得到单位矩阵。

单击聚宽JoinQuant量化炒股平台中的“策略研究/研究环境“命令,进入Jupyter Notebook的研究平台。然后单击“新建”按钮,创建Python 3文件,输入如下代码:

import numpy as np
x = np.array([[1,2], [3,4]])
print('原始矩阵:\n',x)
print()
y = np.linalg.inv(x)
print('矩阵的逆:\n', y)
print()
print('单位矩阵:')
print(np.dot(x, y))

单击工具栏运行按钮,运行结果如下:

原始矩阵:
 [[1 2]
 [3 4]]

矩阵的逆:
 [[-1.9999999999999996 0.9999999999999998]
 [1.4999999999999998 -0.4999999999999999]]

单位矩阵:
[[1.0 0.0]
 [8.881784197001252e-16 0.9999999999999996]]

提醒:单位矩阵是一个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。除此之外全部为0

可在[小蜜蜂AI][ https://zglg.work] 网站的GPT问答获取更多相关知识。

相关文章
|
12天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
8天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2522 18
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
8天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1525 15
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
4天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
10天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
596 14
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19283 30
|
10天前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
498 49
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18845 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17530 13
Apache Paimon V0.9最新进展
|
3天前
|
云安全 存储 运维
叮咚!您有一份六大必做安全操作清单,请查收
云安全态势管理(CSPM)开启免费试用
368 4
叮咚!您有一份六大必做安全操作清单,请查收