技术编程,AI人工智能|深受 Pandas 启发的 JavaScript 开源库 — Danfo.js 现已推出!
作者:Rising Odegua 与 Stephen Oni
来源:TensorFlow
Danfo.js 是个 Java 开源库 , 提供了高性能、直观易用的数据结构 , 支持结构化数据的操作和处理 。Danfo.js 深受 Python Pandas 库的启发 , 并提供了类似的接口/API 。因此熟悉 Pandas API 且了解 Java 的用户可以轻松上手 。
文章图片
文章图片
Danfo.js 的一大目标是为 Java 开发者提供数据处理、机器学习和 AI 工具 。这与我们的愿景一致 , 本质上也符合 TensorFlow.js 团队向 Web 引入 ML 的目标 。Numpy 和 Pandas 等开源库全面革新了 Python 中数据操作的便利性 。因此很多工具都围绕它们构建 , 进一步推动了 Python 中 ML 生态系统的蓬勃发展 。Danfo.js
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")
letdata = http://www.sos110.com/show/12/138451/tf.tensor2d([[20,30,40], [23,90, 28]])
letdf = new dfd.DataFrame(data)
lettf_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 = http://www.sos110.com/show/12/138451/[{ 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
输出:
文章图片
文章图片
带列标签的对象数组到 DataFrame:
const dfd = require( "danfojs-node")
obj_data = http://www.sos110.com/show/12/138451/{'A': [“A1”, “A2”, “A3”, “A4”],
'B': [ "bval1", "bval2", "bval3", "bval4"],
'C': [10, 20, 30, 40],
'D': [1.2, 3.45, 60.1, 45],
'E': [ "test", "train", "test", "train"]
}
df = new dfd.DataFrame(obj_data)
df.print
输出:
文章图片
文章图片
您可以轻松处理浮点和非浮点数据中的缺失数据(以 NaN 表示):
const dfd = require( "danfojs-node")
letdata = http://www.sos110.com/show/12/138451/{"Name":[ "Apples", "Mango", "Banana", undefined],
推荐阅读
- 新科技嗅|人工智能可以应用在哪些方面
- 行业互联网|华为 | 车载以太网物理层及TSN发展现状 与技术趋势
- 技术编程|什么是Plesk虚拟主机控制面板?
- 电池技术|法国发明出世界最快的电极:可将锂电池的密度提高3倍
- 技术编程|人工智能在大视频运维中如何实现CDN硬盘故障预测?
- 电池技术|关于惠州赣锋建设高端聚合物锂电池研发及生产基地建设,赣锋锂业要干大事
- |加速冲刺世界级技术领先地位,大族机器人获1.65亿元A轮融资
- 新加坡|新加坡大学生人工智能创新大赛开幕式举行 星环科技提供建模平台
- 解码器|苹果 ProRes 视频编解码器获 2020 技术工程艾美奖
- 数据|徐叶润:另类数据技术是驱动资管科技的核心
