91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

如何高效的使用Python和pandas清理非結(jié)構(gòu)化文本字段技巧

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)分析與開發(fā) ? 作者:數(shù)據(jù)分析與開發(fā) ? 2021-04-06 13:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹

大家都知道數(shù)據(jù)清洗是數(shù)據(jù)分析過程中的一個(gè)重要部分。pandas有多種清洗文本字段的方法,可以用來為進(jìn)一步分析做準(zhǔn)備。隨著數(shù)據(jù)集越來越大,文本清洗的過程會(huì)逐漸變長,尋找一個(gè)能在合理時(shí)間內(nèi)有效運(yùn)行并可維護(hù)的方法變得非常重要。

本文將展示清洗大數(shù)據(jù)文件中文本字段的示例,幫助大家學(xué)習(xí)使用 Python 和 pandas 高效清理非結(jié)構(gòu)化文本字段的技巧。

問題

假設(shè)你有一批全新工藝的威士忌想出售。你所在的愛荷華州,剛好有一個(gè)公開的數(shù)據(jù)集顯示了該州所有的酒類銷售情況。這似乎是一個(gè)很好的機(jī)會(huì),你可以利用你的分析技能,看看誰是這個(gè)州最大的客戶。有了這些數(shù)據(jù),你甚至可以為每個(gè)客戶規(guī)劃銷售流程。

你對(duì)這個(gè)機(jī)會(huì)感到興奮,但下載了數(shù)據(jù)后發(fā)現(xiàn)它相當(dāng)大。這個(gè)數(shù)據(jù)集是一個(gè)565MB的CSV文件,包含24列和2.3百萬行。它雖然不是我們平時(shí)說的“大數(shù)據(jù)”,但它依然足夠大到可以讓Excel卡死。同時(shí)它也大到讓一些pandas方法在比較慢的筆記本電腦上運(yùn)行地非常吃力。

本文中,我們將使用包括2019年所有銷售額的數(shù)據(jù)。當(dāng)然你也可以從網(wǎng)站上下載其他不同時(shí)間段的數(shù)據(jù)。

我們從導(dǎo)入模塊和讀取數(shù)據(jù)開始,我會(huì)使用sidetable包來查看數(shù)據(jù)的概覽。這個(gè)包雖然不能用來做清洗,但我想強(qiáng)調(diào)一下它對(duì)于這些數(shù)據(jù)探索場景其實(shí)很有用。

數(shù)據(jù)

讀取數(shù)據(jù):

import pandas as pd

import numpy as np

import sidetable

df = pd.read_csv(‘2019_Iowa_Liquor_Sales.csv’)

數(shù)據(jù)長這樣:

7240cd9e-9531-11eb-8b86-12bb97331649.png

我們大概率要做的第一件事是看每一家商店的購買量,并將它們從大到小排序。資源有限所以我們應(yīng)該集中精力在那些我們能從中獲得最好回報(bào)的地方。我們更應(yīng)該打電話給幾個(gè)大公司的賬戶,而不是那些夫妻小店。

sidetable是以可讀格式匯總數(shù)據(jù)的快捷方式。另一種方法是groupby加上其他操作。

df.stb.freq([‘Store Name’], value=‘Sale (Dollars)’, style=True, cum_cols=False)

724cd544-9531-11eb-8b86-12bb97331649.png

很明顯在大多數(shù)情況下,每個(gè)位置的商店名稱都是唯一的。理想情況下我們希望看到的是Hy-Vee, Costco, Sam’s 等聚合在一起的內(nèi)容。

看來我們需要清洗數(shù)據(jù)了。

清洗嘗試·1

我們可以研究的第一種方法是使用.loc以及str的布爾過濾器來搜索Store Name列中的相關(guān)字符串。

df.loc[df[‘Store Name’].str.contains(‘Hy-Vee’, case=False), ‘Store_Group_1’] = ‘Hy-Vee’

上述代碼使用不區(qū)分大小寫的方式來搜索字符串“Hy Vee”,并將值“Hy Vee”存儲(chǔ)在名為Store_Group_1的新列中。這個(gè)代碼可以有效地將“Hy Vee#3/BDI/Des Moines”或“Hy Vee Food Store/Urbandale”等名稱轉(zhuǎn)換為正常的“Hy Vee”。

用%%timeit來計(jì)算此操作的時(shí)間:

1.43 s ± 31.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

我們不想過早地進(jìn)行優(yōu)化,但我們可以使用regex=False參數(shù)來稍微加速一下:

df.loc[df[‘Store Name’].str.contains(‘Hy-Vee’, case=False, regex=False), ‘Store_Group_1’] = ‘Hy-Vee’

804 ms ± 27.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

來看下新列的情況:

df[‘Store_Group_1’].value_counts(dropna=False)

NaN 1617777

Hy-Vee 762568

Name: Store_Group_1, dtype: int64

可以看到我們已經(jīng)清理了Hy-Vee,但還有很多其他值需要我們處理。

.loc方法內(nèi)部包含大量代碼,速度其實(shí)可能很慢。我們可以利用這個(gè)思想,來尋找一些更易于執(zhí)行和維護(hù)的替代方案。

清洗嘗試·2

另一種非常有效和靈活的方法是使用np.select來進(jìn)行多匹配并在匹配時(shí)指定值。

有幾個(gè)很好的資源可以幫你學(xué)習(xí)如何使用np.select。這篇來自Dataquest的文章就是一個(gè)很好的概述。Nathan Cheever的這篇演講也十分有趣,內(nèi)容豐富。我建議你們可以看下這兩篇文章。

關(guān)于np.select的作用最簡單的解釋是,它計(jì)算一個(gè)條件列表,如果有條件為真,就應(yīng)用相應(yīng)值的列表。

在我們的例子中,我們想查找不同的字符串,來替換為我們想要的規(guī)范值。

瀏覽完我們的數(shù)據(jù)后,我們把條件和值列表總結(jié)在store_patterns列表中。列表中的每個(gè)元組都是一個(gè)str.contains()方法,來查找和替換對(duì)應(yīng)的我們想要做聚合的規(guī)范值。

store_patterns = [

(df[‘Store Name’].str.contains(‘Hy-Vee’, case=False, regex=False), ‘Hy-Vee’),

(df[‘Store Name’].str.contains(‘Central City’,

case=False, regex=False), ‘Central City’),

(df[‘Store Name’].str.contains(“Smokin‘ Joe’s”,

case=False, regex=False), “Smokin‘ Joe’s”),

(df[‘Store Name’].str.contains(‘Walmart|Wal-Mart’,

case=False), ‘Wal-Mart’),

(df[‘Store Name’].str.contains(‘Fareway Stores’,

case=False, regex=False), ‘Fareway Stores’),

(df[‘Store Name’].str.contains(“Casey‘s”,

case=False, regex=False), “Casey’s General Store”),

(df[‘Store Name’].str.contains(“Sam‘s Club”, case=False, regex=False), “Sam’s Club”),

(df[‘Store Name’].str.contains(‘Kum & Go’, regex=False, case=False), ‘Kum & Go’),

(df[‘Store Name’].str.contains(‘CVS’, regex=False, case=False), ‘CVS Pharmacy’),

(df[‘Store Name’].str.contains(‘Walgreens’, regex=False, case=False), ‘Walgreens’),

(df[‘Store Name’].str.contains(‘Yesway’, regex=False, case=False), ‘Yesway Store’),

(df[‘Store Name’].str.contains(‘Target Store’, regex=False, case=False), ‘Target’),

(df[‘Store Name’].str.contains(‘Quik Trip’, regex=False, case=False), ‘Quik Trip’),

(df[‘Store Name’].str.contains(‘Circle K’, regex=False, case=False), ‘Circle K’),

(df[‘Store Name’].str.contains(‘Hometown Foods’, regex=False,

case=False), ‘Hometown Foods’),

(df[‘Store Name’].str.contains(“Bucky‘s”, case=False, regex=False), “Bucky’s Express”),

(df[‘Store Name’].str.contains(‘Kwik’, case=False, regex=False), ‘Kwik Shop’)

使用np.select很容易遇到條件和值不匹配的情況。所以我們將其合并為元組,以便更容易地跟蹤數(shù)據(jù)匹配。

想使用這種數(shù)據(jù)結(jié)構(gòu),我們需要將元組分成兩個(gè)單獨(dú)的列表。使用zip來把store_patterns分為store_criteria和store_values:

store_criteria, store_values = zip(*store_patterns)

df[‘Store_Group_1’] = np.select(store_criteria, store_values, ‘other’)

上述代碼將用文本值填充每個(gè)匹配項(xiàng)。如果沒有匹配項(xiàng),我們給它賦值‘other’。

數(shù)據(jù)現(xiàn)在長這樣:

df.stb.freq([‘Store_Group_1’], value=‘Sale (Dollars)’, style=True, cum_cols=False)

72fa307c-9531-11eb-8b86-12bb97331649.png

看起來比之前好,但仍然有32.28%的‘other’。

思考下這樣做是不是更好:如果帳戶不匹配,我們使用Store Name字段,而不是‘other’。這樣來實(shí)現(xiàn):

df[‘Store_Group_1’] = np.select(store_criteria, store_values, None)

df[‘Store_Group_1’] = df[‘Store_Group_1’].combine_first(df[‘Store Name’])

這里使用了combine_first方法來將Store Name填充None值,這是清理數(shù)據(jù)時(shí)要記住的一個(gè)簡便技巧。

再來看下數(shù)據(jù):

df.stb.freq([‘Store_Group_1’], value=‘Sale (Dollars)’, style=True, cum_cols=False)

73267eb6-9531-11eb-8b86-12bb97331649.png

這樣看起來更好了,我們可以根據(jù)需要繼續(xù)細(xì)化分組。例如我們可能需要為Costco構(gòu)建一個(gè)字符串查找。

對(duì)于這個(gè)大型數(shù)據(jù)集來說,性能也還不錯(cuò):

13.2 s ± 328 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

這個(gè)方法的好處是你可以使用np.select來做數(shù)值分析或者上面展示的文本示例,非常靈活。這個(gè)方法也有一個(gè)弊端,那就是代碼量很大。如果你要清理的數(shù)據(jù)集非常大,那么用這個(gè)方法可能導(dǎo)致很多數(shù)據(jù)和代碼混合在一起。那么有沒有其他方法可以有差不多的性能,代碼更整潔一些?

清洗嘗試·3

這里要介紹的解決方案基于Matt Harrison的優(yōu)秀代碼示例,他開發(fā)了一個(gè)可以做匹配和清洗的generalize函數(shù)。我做了一些修改,讓這個(gè)方法可以在這個(gè)示例中使用,我想給Matt一個(gè)大大的贊。如果沒有他前期99%的工作,我永遠(yuǎn)不會(huì)想到這個(gè)解決方案!

def generalize(ser, match_name, default=None, regex=False, case=False):

“”“ Search a series for text matches.

Based on code from https://www.metasnake.com/blog/pydata-assign.html

ser: pandas series to search

match_name: tuple containing text to search for and text to use for normalization

default: If no match, use this to provide a default value, otherwise use the original text

regex: Boolean to indicate if match_name contains a regular expression

case: Case sensitive search

Returns a pandas series with the matched value

”“”

seen = None

for match, name in match_name:

mask = ser.str.contains(match, case=case, regex=regex)

if seen is None:

seen = mask

else:

seen |= mask

ser = ser.where(~mask, name)

if default:

ser = ser.where(seen, default)

else:

ser = ser.where(seen, ser.values)

return ser

這個(gè)函數(shù)可以在pandas上調(diào)用,傳參是一個(gè)元組列表。第一個(gè)元組項(xiàng)是要搜索的值,第二個(gè)是要為匹配值填充的值。

以下是等效的模式列表:

store_patterns_2 = [(‘Hy-Vee’, ‘Hy-Vee’), (“Smokin‘ Joe’s”, “Smokin‘ Joe’s”),

(‘Central City’, ‘Central City’),

(‘Costco Wholesale’, ‘Costco Wholesale’),

(‘Walmart’, ‘Walmart’), (‘Wal-Mart’, ‘Walmart’),

(‘Fareway Stores’, ‘Fareway Stores’),

(“Casey‘s”, “Casey’s General Store”),

(“Sam‘s Club”, “Sam’s Club”), (‘Kum & Go’, ‘Kum & Go’),

(‘CVS’, ‘CVS Pharmacy’), (‘Walgreens’, ‘Walgreens’),

(‘Yesway’, ‘Yesway Store’), (‘Target Store’, ‘Target’),

(‘Quik Trip’, ‘Quik Trip’), (‘Circle K’, ‘Circle K’),

(‘Hometown Foods’, ‘Hometown Foods’),

(“Bucky‘s”, “Bucky’s Express”), (‘Kwik’, ‘Kwik Shop’)]

這個(gè)方案的一個(gè)好處是,與前面的store_patterns示例相比,維護(hù)這個(gè)列表要容易得多。

我對(duì)generalize函數(shù)做的另一個(gè)更改是,如果沒有提供默認(rèn)值,那么將保留原始值,而不是像上面那樣使用combine_first函數(shù)。最后,為了提高性能,我默認(rèn)關(guān)閉了正則匹配。

現(xiàn)在數(shù)據(jù)都設(shè)置好了,調(diào)用它很簡單:

df[‘Store_Group_2’] = generalize(df[‘Store Name’], store_patterns_2)

性能如何?

15.5 s ± 409 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

比起上面它稍微有一點(diǎn)慢,但我認(rèn)為它是一個(gè)更優(yōu)雅的解決方案,如果我要做一個(gè)類似的文本清理工作,我會(huì)用這個(gè)方法。

這種方法的缺點(diǎn)是,它只能做字符串清洗。而np.select也可以應(yīng)用于數(shù)值,所以應(yīng)用范圍更廣。

關(guān)于數(shù)據(jù)類型

在pandas的最新版本中,有一個(gè)專用的字符串類型。我嘗試將Store Name轉(zhuǎn)換為該字符串類型,想看是否有性能優(yōu)化。結(jié)果沒有看到任何變化。不過,未來有可能會(huì)有速度的提升,這點(diǎn)大家可以關(guān)注一下。

雖然string類型沒有什么區(qū)別,但是category類型在這個(gè)數(shù)據(jù)集上顯示了很大的潛力。有關(guān)category數(shù)據(jù)類型的詳細(xì)信息,可以參閱我的上一篇文章:https://pbpython.com/pandas_dtypes_cat.html。

我們可以使用astype將數(shù)據(jù)轉(zhuǎn)換為category類型:

df[‘Store Name’] = df[‘Store Name’].astype(‘category’)

然后我們跟之前那樣在運(yùn)行np.select的方法

df[‘Store_Group_3’] = np.select(store_criteria, store_values, None)

df[‘Store_Group_3’] = df[‘Store_Group_1’].combine_first(df[‘Store Name’])

786 ms ± 108 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

我們只做了一個(gè)簡單的改動(dòng),運(yùn)行時(shí)間從13秒到不到1秒。太神了!效果這么明顯的原因其實(shí)很簡單。當(dāng)pandas將列轉(zhuǎn)換為分組類型時(shí),它只會(huì)對(duì)每個(gè)唯一的文本值調(diào)用珍貴的str.contains()函數(shù)。因?yàn)檫@個(gè)數(shù)據(jù)集有很多重復(fù)的數(shù)據(jù),所以我們得到了巨大的性能提升。

讓我們看看這是否適用于我們的generalize函數(shù):

df[‘Store_Group_4’] = generalize(df[‘Store Name’], store_patterns_2)

不幸的是報(bào)錯(cuò)了:

ValueError: Cannot setitem on a Categorical with a new category, set the categories first

這個(gè)錯(cuò)誤讓我回憶起我過去處理分組數(shù)據(jù)時(shí)遇到的一些挑戰(zhàn)。當(dāng)你合并和關(guān)聯(lián)分組數(shù)據(jù)時(shí),你很容易遇到這些錯(cuò)誤。

我試圖找到一個(gè)比較好的方法來修改generage(),想讓它起作用,但目前還沒找到。如果有任何讀者能找到方法,可以聯(lián)系我獲得獎(jiǎng)金。這里,我們通過構(gòu)建一個(gè)查找表來復(fù)制Category方法。

查找表

正如我們通過分類方法了解到的,這個(gè)數(shù)據(jù)集有很多重復(fù)的數(shù)據(jù)。我們可以構(gòu)建一個(gè)查找表,每個(gè)字符串處理一次資源密集型函數(shù)。

為了說明它是如何在字符串上工作的,我們將值從category轉(zhuǎn)換回字符串類型:

df[‘Store Name’] = df[‘Store Name’].astype(‘string’)

首先,我們構(gòu)建一個(gè)包含所有唯一值的lookup DataFrame并運(yùn)行g(shù)eneralize函數(shù):

lookup_df = pd.DataFrame()

lookup_df[‘Store Name’] = df[‘Store Name’].unique()

lookup_df[‘Store_Group_5’] = generalize(lookup_df[‘Store Name’], store_patterns_2)

7338d782-9531-11eb-8b86-12bb97331649.png

我們可以把它合并到最終的DataFrame:

df = pd.merge(df, lookup_df, how=‘left’)

1.38 s ± 15.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

比起np.select使用分組數(shù)據(jù)的方法稍慢一些,但是代碼可讀性和易維護(hù)程度更高,性能和這兩者之間其實(shí)需要掌握一個(gè)平衡。

此外,中間的lookup_df可以很好的輸出給分析師共享,從而讓分析師幫助你清洗更多數(shù)據(jù)。這可能節(jié)省你幾小時(shí)的時(shí)間!

總結(jié)

根據(jù)我的經(jīng)驗(yàn),通過本文中概述的清洗示例,你可以了解很多關(guān)于底層數(shù)據(jù)的信息。

我推測你會(huì)在你的日常分析中發(fā)現(xiàn)很多需要進(jìn)行文本清理的案例,就像我在本文中展示的那樣。

下面是本文解決方案的簡要總結(jié):

解決方案執(zhí)行時(shí)間注釋

np.select13s可用于非文本分析

generalize15s只支持文本

分組數(shù)據(jù)和np.select786ms在合并和關(guān)聯(lián)時(shí),分組數(shù)據(jù)可能會(huì)變得棘手

查找表和generalize1.3s查找表可以由其他人維護(hù)

對(duì)于一些數(shù)據(jù)集來說,性能不是問題,所以你可以隨意選擇。

然而,隨著數(shù)據(jù)規(guī)模的增長(想象一下對(duì)50個(gè)州的數(shù)據(jù)進(jìn)行分析),你需要了解如何高效地使用pandas進(jìn)行文本清洗。我建議你可以收藏這篇文章,當(dāng)你面對(duì)類似的問題時(shí)可以再回來看看。

當(dāng)然,如果你有一些其他的建議,可能會(huì)對(duì)別人有用,可以寫在評(píng)論里。如果你知道如何使我的generalize函數(shù)與分組數(shù)據(jù)一起工作,也記得告訴我。
編輯:lyn

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

    關(guān)注

    2

    文章

    1516

    瀏覽量

    36238
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90071

原文標(biāo)題:用 pandas 高效清洗文本數(shù)據(jù)

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    技術(shù)分享|道路數(shù)據(jù)編輯與格式適配解析

    1引言我們此前發(fā)布的《如何高效構(gòu)建與測試結(jié)構(gòu)化道路場景?》一文,已系統(tǒng)闡述了結(jié)構(gòu)化道路仿真的必要性、當(dāng)前面臨的技術(shù)難點(diǎn)及其解決方案。而在
    的頭像 發(fā)表于 02-13 16:01 ?97次閱讀
    技術(shù)分享|道路數(shù)據(jù)編輯與格式適配解析

    鋰離子電池高性能負(fù)極結(jié)構(gòu)化復(fù)合集流體綜述

    ,結(jié)構(gòu)化集流體通過精心的表面與體相結(jié)構(gòu)設(shè)計(jì),為上述問題提供了系統(tǒng)性解決方案。Flexfilm探針式臺(tái)階儀可以實(shí)現(xiàn)表面微觀特征的精準(zhǔn)表征與關(guān)鍵參數(shù)的定量測量,精確測
    的頭像 發(fā)表于 02-04 18:03 ?940次閱讀
    鋰離子電池高性能負(fù)極<b class='flag-5'>結(jié)構(gòu)化</b>復(fù)合集流體綜述

    數(shù)字的基礎(chǔ)是什么

    、用戶交互等渠道持續(xù)收集結(jié)構(gòu)化(如數(shù)據(jù)庫記錄)和結(jié)構(gòu)化數(shù)據(jù)(如文本、圖像、視頻)。 數(shù)據(jù)存儲(chǔ)與管理 :依賴數(shù)據(jù)庫、數(shù)據(jù)倉庫、云存儲(chǔ)等技術(shù)實(shí)現(xiàn)高效
    的頭像 發(fā)表于 02-04 17:53 ?1120次閱讀

    如何高效構(gòu)建與測試結(jié)構(gòu)化道路場景?

    高保真虛擬數(shù)據(jù)集開源發(fā)布,兼容nuScenes,開箱即用!01引言隨著智能駕駛仿真測試等技術(shù)的快速發(fā)展,行業(yè)評(píng)估體系已從單一的“測試?yán)锍虜?shù)”向更全面的“場景覆蓋度”及“邊緣場景”檢驗(yàn)演進(jìn)。在此趨勢下,實(shí)車測試向仿真環(huán)境遷移已成為提升驗(yàn)證效率與安全的必然選擇。統(tǒng)計(jì)數(shù)據(jù)表明,一套成熟的自動(dòng)駕駛算法驗(yàn)證
    的頭像 發(fā)表于 01-04 17:33 ?630次閱讀
    如何<b class='flag-5'>高效</b>構(gòu)建與測試<b class='flag-5'>非</b><b class='flag-5'>結(jié)構(gòu)化</b>道路場景?

    功率放大器在磁場激勵(lì)下對(duì)狹窄結(jié)構(gòu)化液體環(huán)境適應(yīng)性研究的應(yīng)用

    實(shí)驗(yàn)名稱: 磁場激勵(lì)下對(duì)狹窄結(jié)構(gòu)化液體環(huán)境的卓越環(huán)境適應(yīng)性和出色的3D可控性驗(yàn)證 研究方向: 在臨床實(shí)踐中,天然孔口通常為醫(yī)療器械提供對(duì)各種靶組織的侵入性通路。這些體腔/腔(例如泌尿和消化系統(tǒng)
    的頭像 發(fā)表于 11-25 10:04 ?267次閱讀
    功率放大器在磁場激勵(lì)下對(duì)狹窄<b class='flag-5'>非</b><b class='flag-5'>結(jié)構(gòu)化</b>液體環(huán)境適應(yīng)性研究的應(yīng)用

    結(jié)構(gòu)化布線中使用電纜標(biāo)簽的4個(gè)主要優(yōu)勢

    在現(xiàn)代通信和網(wǎng)絡(luò)基礎(chǔ)設(shè)施建設(shè)中,結(jié)構(gòu)化布線系統(tǒng)扮演著至關(guān)重要的角色。它不僅確保了網(wǎng)絡(luò)的高效傳輸和穩(wěn)定運(yùn)行,還為未來的擴(kuò)展和維護(hù)提供了便利。而在結(jié)構(gòu)化布線中,電纜標(biāo)簽的使用雖看似是一個(gè)小小的細(xì)節(jié),卻能
    的頭像 發(fā)表于 11-24 10:34 ?330次閱讀

    圖文詳情編輯接口

    逐步講解接口的設(shè)計(jì)、實(shí)現(xiàn)和使用,幫助您理解如何構(gòu)建一個(gè)可靠的技術(shù)方案。 1. 接口設(shè)計(jì)原則 設(shè)計(jì)圖文詳情編輯接口時(shí),需考慮以下關(guān)鍵點(diǎn): 數(shù)據(jù)模型 :圖文內(nèi)容通常包含文本字段(如標(biāo)題、正文)和圖片字段(如圖片URL或二進(jìn)制數(shù)據(jù))。例
    的頭像 發(fā)表于 10-23 16:24 ?321次閱讀
    圖文詳情編輯接口

    Python 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)

    一、技術(shù)選型:為什么選 Python 而不是 Java? 結(jié)論: “調(diào)研階段用 Python,上線后如果 QPS 爆表再考慮 Java 重構(gòu)。” 二、整體架構(gòu)速覽(3 分鐘看懂) 三、開發(fā)前準(zhǔn)備(5
    的頭像 發(fā)表于 10-21 16:59 ?521次閱讀
    用 <b class='flag-5'>Python</b> 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)

    NetApp助力對(duì)象存儲(chǔ)現(xiàn)代,提升速度、可擴(kuò)展性和安全性

    計(jì)。最新版本的StorageGRID將引入新功能,旨在推進(jìn)人工智能計(jì)劃、提高數(shù)據(jù)安全性并實(shí)現(xiàn)企業(yè)數(shù)據(jù)基礎(chǔ)設(shè)施的現(xiàn)代。 無論企業(yè)是處于數(shù)據(jù)湖現(xiàn)代的早期階段,還是正在試驗(yàn)高級(jí)人工智能應(yīng)用程序,他們都需要管理并存儲(chǔ)激增的
    的頭像 發(fā)表于 09-11 10:41 ?553次閱讀

    深度學(xué)習(xí)對(duì)工業(yè)物聯(lián)網(wǎng)有哪些幫助

    、實(shí)施路徑三個(gè)維度展開分析: 一、深度學(xué)習(xí)如何突破工業(yè)物聯(lián)網(wǎng)的技術(shù)瓶頸? 1. 結(jié)構(gòu)化數(shù)據(jù)處理:解鎖“沉睡數(shù)據(jù)”價(jià)值 傳統(tǒng)困境 :工業(yè)物聯(lián)網(wǎng)中70%以上的數(shù)據(jù)為結(jié)構(gòu)化數(shù)據(jù)(如設(shè)備振
    的頭像 發(fā)表于 08-20 14:56 ?1033次閱讀

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

    ,同時(shí)提供一個(gè)開放的混合數(shù)據(jù)基礎(chǔ)架構(gòu)和企業(yè)級(jí)的結(jié)構(gòu)化結(jié)構(gòu)化數(shù)據(jù)管理。 智能體AI面臨結(jié)構(gòu)化數(shù)據(jù)難題:IBM推出解決方案 測試結(jié)果顯示,
    的頭像 發(fā)表于 07-02 09:40 ?529次閱讀

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

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

    從零到一:如何利用結(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 ?770次閱讀

    樹莓派AI套件:如何將混亂的數(shù)據(jù)變成有序的魔法

    使用RaspberryPiAI套件進(jìn)行結(jié)構(gòu)化數(shù)據(jù)處理——Hailo邊緣AI結(jié)構(gòu)化數(shù)據(jù)處理、RaspberryPi5、RaspberryPiAI套件、Milvus、Zilliz、數(shù)據(jù)
    的頭像 發(fā)表于 03-25 09:37 ?979次閱讀
    樹莓派AI套件:如何將混亂的數(shù)據(jù)變成有序的魔法

    爬蟲數(shù)據(jù)獲取實(shí)戰(zhàn)指南:從入門到高效采集

    高效又合規(guī)地獲取數(shù)據(jù)?本文將為你拆解完整流程,并推薦一款助力數(shù)據(jù)采集的“黃金搭檔”——IPIDEA全球代理,讓你的數(shù)據(jù)獲取事半功倍! 一、需求規(guī)劃: 明確目標(biāo),精準(zhǔn)出擊 關(guān)鍵問題: 數(shù)據(jù)類型:需要文本、圖片、視頻,還是結(jié)構(gòu)化
    的頭像 發(fā)表于 03-24 14:08 ?1581次閱讀