【问题标题】:How can i save a list/matrix in binary format in KDB?如何在 KDB 中以二进制格式保存列表/矩阵?
【发布时间】:2019-12-30 11:55:29
【问题描述】:

我正在尝试 savematrix 以二进制格式在 KDB 中按以下方式归档:

matrix: (til 10)*/:til 10;
save matrix;

但是,我收到错误 'type

我猜save 只适用于表格?在哪种情况下有人知道解决方法吗?

最后,我想用NumPy将二进制文件中的矩阵读入Python,我想这只是:

import numpy as np
matrix = np.fromfile('C:/q/w32/matrix', dtype='f')

是吗?

注意:我知道KDB-Python libraries,但目前无法安装它们。

【问题讨论】:

    标签: python list numpy save kdb


    【解决方案1】:

    save 确实有效,您只需按名称引用它。

    save`matrix
    

    你也可以使用

    `:matrix set matrix;
    `:matrix 1: matrix;
    

    但我认为您不能直接使用 numpy 将其读入 python,因为它以 kdb 格式存储。可以使用 python-kdb 接口之一(例如 PyQ)将其读入 python,也可以将其存储为通用格式,例如 csv。

    【讨论】:

      【解决方案2】:

      另一种选择是以 KDB+ IPC 格式保存,然后使用 qPython 作为 Pandas DataFrame 将其读入 Python。 在 KDB+ 方面,您可以将其保存为

      matrix:(til 10)*/:til 10;
      `:matrix.ipc 1: -8!matrix;
      

      在 Python 方面你做的

      from pandas import DataFrame
      from qpython.qreader import QReader
      
      with open('matrix.ipc',"rb") as f:
          matrix = DataFrame(QReader(f).read().data)
      
      print(matrix)
      

      【讨论】:

        猜你喜欢
        • 2020-08-01
        • 2017-07-12
        • 1970-01-01
        • 2016-04-06
        • 1970-01-01
        • 1970-01-01
        • 2016-07-29
        • 1970-01-01
        • 2015-09-23
        相关资源
        最近更新 更多