深受 Pandas 启发的 JavaScript 开源库 — Danfo.js

Danfo.js 是一个 JavaScript 开源库,提供高性能数据结构,灵感来源于 Python 的 Pandas。它支持 JSON、对象数组到 DataFrame 的转换,具备缺失值处理、智能切片、IO 工具和数据预处理功能,如 OneHotEncoder、LabelEncoder。通过与 TensorFlow.js 集成,Danfo.js 旨在为 JavaScript 开发者提供数据处理和机器学习工具。
摘要由CSDN通过智能技术生成

Image

 

特邀博文 / 独立研究员 Rising Odegua 与来自 Data Science Nigeria 的 Stephen Oni 

Danfo.js 是个 JavaScript 开源库,提供了高性能、直观易用的数据结构,支持结构化数据的操作和处理。Danfo.js 深受 Python Pandas 库的启发,并提供了类似的接口/API。因此熟悉 Pandas API 且了解 JavaScript 的用户可以轻松上手。

Image

 

Danfo.js 的一大目标是为 JavaScript 开发者提供数据处理、机器学习和 AI 工具。这与我们的愿景一致,本质上也符合 TensorFlow.js 团队向 Web 引入 ML 的目标。Numpy 和 Pandas 等开源库全面革新了 Python 中数据操作的便利性。因此很多工具都围绕它们构建,进一步推动了 Python 中 ML 生态系统的蓬勃发展。

Danfo.js 建立在 TensorFlow.js 上。也就是说,就像 Numpy 为 Pandas 的算术运算提供技术支持一样,我们是利用 TensorFlow.js 为我们的低级算术运算提供技术支持。

Danfo.js 的主要特性

Danfo.js 速度快。它基于 TensorFlow.js 构建,与张量无缝兼容。您可以在 Danfo 中加载张量,也可以将 Danfo 数据结构转换为张量。利用这两个库,既有了数据处理库 (Danfo.js),也有了强大的 ML 库 (TensorFlow.js)。

以下示例将展示如何从张量对象创建 Danfo DataFrame:

const dfd = require("danfojs-node")
const tf = require("@tensorflow/tfjs-node")

let data = tf.tensor2d([[20,30,40], [23,90, 28]])
let df = new dfd.DataFrame(data)
let tf_tensor = df.tensor
console.log(tf_tensor);
tf_tensor.print()

输出:

Tensor {
  kept: false,
  isDisposedInternal: false,
  shape: [ 2, 3 ],
  dtype: 'float32',
  size: 6,
  strides: [ 3 ],
  dataId: {},
  id: 3,
  rankType: '2'
}
Tensor
    [[20, 30, 40],
     [23, 90, 28]]

您可以轻松地将数组、JSON 或对象转换为 DataFrame 对象操作。

JSON 对象到 DataFrame:

const dfd = require("danfojs-node")
json_data = [{ A: 0.4612, B: 4.28283, C: -1.509, D: -1.1352 },
            { A: 0.5112, B: -0.22863, C: -3.39059, D: 1.1632 },
            { A: 0.6911, B: -0.82863, C: -1.5059, D: 2.1352 },
            { A: 0.4692, B: -1.28863, C: 4.5059, D: 4.1632 }]
df = new dfd.DataFrame(json_data)
df.print()

输出:

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值