99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Danfo.js提供高性能、直觀易用的數(shù)據(jù)結(jié)構(gòu),支持結(jié)構(gòu)化數(shù)據(jù)的操作和處理

Tensorflowers ? 來(lái)源:TensorFlow ? 作者:TensorFlow ? 2020-09-23 18:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Danfo.js 是個(gè) JavaScript 開(kāi)源庫(kù),提供了高性能、直觀易用的數(shù)據(jù)結(jié)構(gòu),支持結(jié)構(gòu)化數(shù)據(jù)的操作和處理。Danfo.js 深受 Python Pandas 庫(kù)的啟發(fā),并提供了類(lèi)似的接口/API。因此熟悉 Pandas API 且了解 JavaScript 的用戶(hù)可以輕松上手。

Danfo.js 的一大目標(biāo)是為 JavaScript 開(kāi)發(fā)者提供數(shù)據(jù)處理、機(jī)器學(xué)習(xí)AI 工具。這與我們的愿景一致,本質(zhì)上也符合 TensorFlow.js 團(tuán)隊(duì)向 Web 引入 ML 的目標(biāo)。Numpy 和 Pandas 等開(kāi)源庫(kù)全面革新了 Python 中數(shù)據(jù)操作的便利性。因此很多工具都圍繞它們構(gòu)建,進(jìn)一步推動(dòng)了 Python 中 ML 生態(tài)系統(tǒng)的蓬勃發(fā)展。

Danfo.js
https://danfo.jsdata.org/

Danfo.js 建立在 TensorFlow.js 上。也就是說(shuō),就像 Numpy 為 Pandas 的算術(shù)運(yùn)算提供技術(shù)支持一樣,我們是利用 TensorFlow.js 為我們的低級(jí)算術(shù)運(yùn)算提供技術(shù)支持。

Danfo.js 的主要特性

Danfo.js 速度快。它基于 TensorFlow.js 構(gòu)建,與張量無(wú)縫兼容。您可以在 Danfo 中加載張量,也可以將 Danfo 數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為張量。利用這兩個(gè)庫(kù),既有了數(shù)據(jù)處理庫(kù) (Danfo.js),也有了強(qiáng)大的 ML 庫(kù) (TensorFlow.js)。

以下示例將展示如何從張量對(duì)象創(chuàng)建 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]]

您可以輕松地將數(shù)組、JSON 或?qū)ο筠D(zhuǎn)換為 DataFrame 對(duì)象操作。

JSON 對(duì)象到 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()

輸出:

帶列標(biāo)簽的對(duì)象數(shù)組到 DataFrame:

const dfd = require("danfojs-node") obj_data = {'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()

輸出:

您可以輕松處理浮點(diǎn)和非浮點(diǎn)數(shù)據(jù)中的缺失數(shù)據(jù)(以 NaN 表示):

const dfd = require("danfojs-node") let data = {"Name":["Apples", "Mango", "Banana", undefined], "Count": [NaN, 5, NaN, 10], "Price": [200, 300, 40, 250]} let df = new dfd.DataFrame(data) let df_filled = df.fillna({columns: ["Name", "Count"], values: ["Apples", df["Count"].mean()]}) df_filled.print()

輸出:

基于智能標(biāo)簽的切片、花式索引和大數(shù)據(jù)集查詢(xún):

const dfd = require("danfojs-node") let data = { "Name": ["Apples", "Mango", "Banana", "Pear"] , "Count": [21, 5, 30, 10], "Price": [200, 300, 40, 250] } let df = new dfd.DataFrame(data) let sub_df = df.loc({ rows: ["0:2"], columns: ["Name", "Price"] }) sub_df.print()

輸出:

強(qiáng)大的 IO 工具,用于從平面文件(CSV 和分隔)加載數(shù)據(jù)。完整和分塊均可:

const dfd = require("danfojs-node") //read the first 10000 rows dfd.read_csv("file:///home/Desktop/bigdata.csv", chunk=10000) .then(df => { df.tail().print() }).catch(err=>{ console.log(err); })

DataFrame 和 Series 支持OneHotEncoders、LabelEncoders等強(qiáng)大的數(shù)據(jù)預(yù)處理函數(shù)和 StandardScaler 和 MinMaxScaler 等 Scaler:

const dfd = require("danfojs-node") let data = ["dog","cat","man","dog","cat","man","man","cat"] let series = new dfd.Series(data) let encode = new dfd.LabelEncoder() encode.fit(series) let sf_enc = encode.transform(series) let new_sf = encode.transform(["dog","man"])

輸出:

交互式、靈活且直觀的 API,用于在瀏覽器中繪制 DataFrame 和 Series:

Document

輸出:

示例:泰坦尼克號(hào)幸存預(yù)測(cè)

以下是使用 Danfo.js 和 TensorFlow.js 的簡(jiǎn)單端到端分類(lèi)任務(wù)。使用 Danfo 進(jìn)行數(shù)據(jù)集的數(shù)據(jù)加載、操作和預(yù)處理,然后導(dǎo)出張量對(duì)象。

const dfd = require("danfojs-node") const tf = require("@tensorflow/tfjs-node") async function load_process_data() { let df = await dfd.read_csv("https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv") //A feature engineering: Extract all titles from names columns let title = df['Name'].apply((x) => { return x.split(".")[0] }).values //replace in df df.addColumn({ column: "Name", value: title }) //label Encode Name feature let encoder = new dfd.LabelEncoder() let cols = ["Sex", "Name"] cols.forEach(col => { encoder.fit(df[col]) enc_val = encoder.transform(df[col]) df.addColumn({ column: col, value: enc_val }) }) let Xtrain,ytrain; Xtrain = df.iloc({ columns: [`1:`] }) ytrain = df['Survived'] // Standardize the data with MinMaxScaler let scaler = new dfd.MinMaxScaler() scaler.fit(Xtrain) Xtrain = scaler.transform(Xtrain) return [Xtrain.tensor, ytrain.tensor] //return the data as tensors }

接下來(lái)使用 TensorFlow.js 創(chuàng)建一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)。

function get_model() { const model = tf.sequential(); model.add(tf.layers.dense({ inputShape: [7], units: 124, activation: 'relu', kernelInitializer: 'leCunNormal' })); model.add(tf.layers.dense({ units: 64, activation: 'relu' })); model.add(tf.layers.dense({ units: 32, activation: 'relu' })); model.add(tf.layers.dense({ units: 1, activation: "sigmoid" })) model.summary(); return model }

最后進(jìn)行訓(xùn)練,首先將模型和處理后的數(shù)據(jù)加載為張量。這可以直接饋送到神經(jīng)網(wǎng)絡(luò)。

async function train() { const model = await get_model() const data = await load_process_data() const Xtrain = data[0] const ytrain = data[1] model.compile({ optimizer: "rmsprop", loss: 'binaryCrossentropy', metrics: ['accuracy'], }); console.log("Training started....") await model.fit(Xtrain, ytrain,{ batchSize: 32, epochs: 15, validationSplit: 0.2, callbacks:{ onEpochEnd: async(epoch, logs)=>{ console.log(`EPOCH (${epoch + 1}): Train Accuracy: ${(logs.acc * 100).toFixed(2)}, Val Accuracy: ${(logs.val_acc * 100).toFixed(2)} `); } } }); }; train()

您可能注意到 Danfo 的 API 與 Pandas 非常相似,即使不是 Javascript 程序員也可以輕松閱讀和理解代碼。您可參考以上演示的完整源代碼 (https://gist.github.com/risenW/f54e4e5b6d92e7b1b9b1f30e884ca83c)。

結(jié)語(yǔ)

基于網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)已經(jīng)日趨成熟,對(duì)應(yīng)的專(zhuān)用高效數(shù)據(jù)科學(xué)工具必不可少。類(lèi)似 Danfo.js 的工具讓基于網(wǎng)絡(luò)的應(yīng)用可以輕松支持 ML 特性,從而讓?xiě)?yīng)用生態(tài)系統(tǒng)更加豐富多彩。

這場(chǎng)變革始于 TensorFlow.js 為 Python 帶來(lái)的 ML 功能。我們希望為 Danfo.js 作為高效的同伴一路提供支持。我們對(duì) Danfo.js 的發(fā)展充滿(mǎn)期待!希望它也能成為網(wǎng)絡(luò)社區(qū)的關(guān)鍵成員。

原文標(biāo)題:深受 Pandas 啟發(fā)的 JavaScript 開(kāi)源庫(kù) — Danfo.js 現(xiàn)已推出!

文章出處:【微信公眾號(hào):TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

    109982
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3695

    瀏覽量

    43855

原文標(biāo)題:深受 Pandas 啟發(fā)的 JavaScript 開(kāi)源庫(kù) — Danfo.js 現(xiàn)已推出!

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    智能體AI面臨非結(jié)構(gòu)化數(shù)據(jù)難題:IBM推出解決方案

    ,同時(shí)提供一個(gè)開(kāi)放的混合數(shù)據(jù)基礎(chǔ)架構(gòu)和企業(yè)級(jí)的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)管理。 智能體AI面臨非結(jié)構(gòu)化
    的頭像 發(fā)表于 07-02 09:40 ?159次閱讀

    DDN攜手NVIDIA釋放非結(jié)構(gòu)化數(shù)據(jù)的AI價(jià)值

    DDN 通過(guò)與 NVIDIA AI 數(shù)據(jù)平臺(tái)的合作,推出聯(lián)合解決方案,簡(jiǎn)化了企業(yè)對(duì)非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)、訪(fǎng)問(wèn)和激活方式,助力客戶(hù)釋放生成式 AI 的巨大商業(yè)潛能。DDN 全球合作伙伴負(fù)責(zé)人
    的頭像 發(fā)表于 06-10 10:31 ?386次閱讀

    程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)

    《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》重點(diǎn)闡述了三大方向內(nèi)容: 1. C語(yǔ)言學(xué)習(xí)中的痛點(diǎn):針對(duì)當(dāng)前工程師在C語(yǔ)言學(xué)習(xí)中的痛點(diǎn),如指針函數(shù)與函數(shù)指針,如何靈活應(yīng)用結(jié)構(gòu)體等。從變量的三要素(變量的類(lèi)型,變量的值和變量
    發(fā)表于 05-13 16:45

    從零到一:如何利用非結(jié)構(gòu)化數(shù)據(jù)中臺(tái)快速部署AI解決方案

    在企業(yè)數(shù)字轉(zhuǎn)型的浪潮中,AI已從概念走向落地應(yīng)用。然而,真正能高效、安全地部署AI解決方案的企業(yè)仍屬少數(shù),瓶頸往往出在“數(shù)據(jù)”——尤其是非結(jié)構(gòu)化數(shù)據(jù)的管理與應(yīng)用上。文件、音頻、視頻、
    的頭像 發(fā)表于 04-14 13:50 ?269次閱讀

    結(jié)構(gòu)化數(shù)據(jù)中臺(tái):企業(yè)AI應(yīng)用安全落地的核心引擎

    在數(shù)字轉(zhuǎn)型浪潮中,非結(jié)構(gòu)化數(shù)據(jù)(如文檔、圖片、音視頻等)已成為企業(yè)核心資產(chǎn),其價(jià)值挖掘能力直接影響AI應(yīng)用的效能與安全性。然而,數(shù)據(jù)分散、多模態(tài)
    的頭像 發(fā)表于 02-27 17:06 ?508次閱讀

    EtherCAT數(shù)據(jù)結(jié)構(gòu)解析

    物理層和常規(guī)的以太網(wǎng)卡,通過(guò)獨(dú)特的數(shù)據(jù)結(jié)構(gòu)處理機(jī)制,實(shí)現(xiàn)了基于EtherNet的實(shí)時(shí)控制。本文將深入探討EtherCAT的數(shù)據(jù)結(jié)構(gòu),從
    的頭像 發(fā)表于 02-02 17:42 ?1339次閱讀

    七款經(jīng)久不衰的數(shù)據(jù)可視化工具!

    整合來(lái)自不同系統(tǒng)的數(shù)據(jù),提供全面的業(yè)務(wù)洞察??偟膩?lái)說(shuō),F(xiàn)ineBI 不僅操作簡(jiǎn)便,功能強(qiáng)大,還能夠適應(yīng)不同企業(yè)的需求,幫助用戶(hù)實(shí)現(xiàn)高效的數(shù)據(jù)分析和決策
    發(fā)表于 01-19 15:24

    戴爾數(shù)據(jù)湖倉(cāng)助力企業(yè)數(shù)字轉(zhuǎn)型

    在數(shù)字轉(zhuǎn)型的浪潮下,企業(yè)正面臨著前所未有的數(shù)據(jù)挑戰(zhàn)。從傳統(tǒng)的結(jié)構(gòu)化數(shù)據(jù)到如今的非結(jié)構(gòu)化數(shù)據(jù)、半
    的頭像 發(fā)表于 12-20 09:31 ?517次閱讀

    bds 系統(tǒng)的優(yōu)缺點(diǎn) bds與傳統(tǒng)數(shù)據(jù)庫(kù)的區(qū)別

    BDS(Big Data System)系統(tǒng),通常指的是用于處理數(shù)據(jù)的系統(tǒng),它們能夠處理大規(guī)模數(shù)據(jù)集,包括結(jié)構(gòu)化、半
    的頭像 發(fā)表于 11-22 15:48 ?3133次閱讀

    結(jié)構(gòu)化布線(xiàn)在AI數(shù)據(jù)中心的關(guān)鍵作用

    AI 正在不斷顛覆各行各業(yè),推動(dòng)從電影制作到金融行業(yè)等各個(gè)領(lǐng)域的創(chuàng)新。而在 AI 系統(tǒng)的背后,隱藏著這樣一位無(wú)名英雄:結(jié)構(gòu)化布線(xiàn)。
    的頭像 發(fā)表于 11-21 16:51 ?908次閱讀

    DDC264配置寄存器數(shù)據(jù)寫(xiě)入和320 DCLK時(shí)鐘脈沖后的回讀數(shù)據(jù)結(jié)構(gòu)是什么?

    配置寄存器數(shù)據(jù)寫(xiě)入和320 DCLK時(shí)鐘脈沖后的回讀數(shù)據(jù)結(jié)構(gòu)是什么? 根據(jù)注和表9,16位配置寄存器數(shù)據(jù),4位修訂ID, 300位校驗(yàn)?zāi)J?,怎么可能?024 TOTAL READBACK BITS, format = 0
    發(fā)表于 11-19 07:58

    視覺(jué)軟件HALCON的數(shù)據(jù)結(jié)構(gòu)

    在研究機(jī)器視覺(jué)算法之前,我們需要先了解機(jī)器視覺(jué)應(yīng)用中涉及的基本數(shù)據(jù)結(jié)構(gòu)。Halcon數(shù)據(jù)結(jié)構(gòu)主要有圖像參數(shù)和控制參數(shù)兩類(lèi)參數(shù)。圖像參數(shù)包括:image、region、XLD,控制參數(shù)包括:string、integer、real、handle、tuple數(shù)組等。
    的頭像 發(fā)表于 11-14 10:20 ?1308次閱讀
    視覺(jué)軟件HALCON的<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>

    架構(gòu)師日記-從數(shù)據(jù)庫(kù)發(fā)展歷程到數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)探析

    的提出,以表格形式組織數(shù)據(jù),數(shù)據(jù)之間存在關(guān)聯(lián)關(guān)系,具有了良好的結(jié)構(gòu)化和規(guī)范特性,成為主流數(shù)據(jù)庫(kù)類(lèi)型。 先來(lái)看一張
    的頭像 發(fā)表于 09-25 11:20 ?1169次閱讀
    架構(gòu)師日記-從<b class='flag-5'>數(shù)據(jù)</b>庫(kù)發(fā)展歷程到<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>設(shè)計(jì)探析

    嵌入式常用數(shù)據(jù)結(jié)構(gòu)有哪些

    在嵌入式編程中,數(shù)據(jù)結(jié)構(gòu)的選擇和使用對(duì)于程序的性能、內(nèi)存管理以及開(kāi)發(fā)效率都具有重要影響。嵌入式系統(tǒng)由于資源受限(如處理器速度、內(nèi)存大小等),因此對(duì)數(shù)據(jù)結(jié)構(gòu)的選擇和使用尤為關(guān)鍵。以下是嵌
    的頭像 發(fā)表于 09-02 15:25 ?1045次閱讀

    基于分布式對(duì)象存儲(chǔ)WDS的信托非結(jié)構(gòu)化數(shù)據(jù)整合平臺(tái)

    基于分布式對(duì)象存儲(chǔ)WDS的信托非結(jié)構(gòu)化數(shù)據(jù)整合平臺(tái)
    的頭像 發(fā)表于 08-28 09:56 ?652次閱讀
    基于分布式對(duì)象存儲(chǔ)WDS的信托非<b class='flag-5'>結(jié)構(gòu)化</b><b class='flag-5'>數(shù)據(jù)</b>整合平臺(tái)