干货丨DolphinDB NumPy使用教程

NumPy是一个用于科学计算的基础库,常和pandas配合使用,实现复杂计算。Orca的底层实现基于DolphinDB,若是用NumPy函数直接处理Orca对象,会直接将Orca对象下载到本地计算,形成没必要要的性能损失,甚至可能致使异常。为此,Orca提供了一个附属项目,DolphinDB NumPy。它包装了NumPy的接口,针对Orca对象有优化,又不影响其余状况的使用。dom

1 安装ide

DolphinDB NumPy项目已经集成到DolphinDB Python API中。经过pip工具安装DolphinDB Python API,就能够使用DolphinDB NumPy。函数

pip install dolphindb

若是你已经有现成的NumPy程序,能够将NumPy的import替换为:工具

# import numpy as np
import dolphindb.numpy as np

若是程序用到了orca对象,请保证已经链接到DolphinDB。性能

2 快速入门优化

经过传入一列值建立一个DolphinDB NumPy ndarray对象。对象

>>> import dolphindb.numpy as np 
>>> a = np.array([1, 2])
>>> a
array([1, 2])

若是尝试得到a的类型,会发现它就是一个NumPy的ndarray,DolphinDB NumPy只是一个包装:接口

>>> type(a)<class 'numpy.ndarray'>

DolphinDB NumPy的使用与NumPy无异:ip

>>> import dolphindb.numpy as np
>>> np.exp(range(5))
array([ 1.        ,  2.71828183,  7.3890561 , 20.08553692, 54.59815003])
>>> np.random.randint(0, 10, 3)
array([4, 7, 8])

DolphinDB NumPy的ndarray对象能够与Orca对象直接运算。返回结果是Orca中间表达式。开发

>>> df = orca.DataFrame({"a": [1,2]})
>>> a + df
<orca.core.operator.ArithExpression object at 0x7ffa4a1d99d0>

3 DolphinDB NumPy的功能限制和注意事项

DolphinDB NumPy目前还在开发阶段,DolphinDB NumPy的接口函数,若参数中包括Orca对象,仅支持四则运算、逻辑运算、DolphinDB支持的数学函数和统计函数。

用DolphinDB NumPy函数操做Orca对象时,会采用Orca所使用的惰性求值策略。所以,常见的四则运算、逻辑运算等,一般会返回一个中间表达式:

>>> import dolphindb.numpy as np
>>> a = np.float32(3.5)
>>> df = orca.Series([1,2])
>>> b = a + df
>>> b
<orca.core.operator.ArithExpression object at 0x7ffa4a1d99d0>

>>> b.compute()
0    4.5
1    5.5
dtype: float32