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