国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

長知識了!這8個很少用但卻很實用的 Python 庫真棒!

AZmake / 3375人閱讀

摘要:歡迎關注,專注數據分析數據挖掘好玩工具本文介紹一些我們可能很少聽過,但是對于特定問題或者特定任務來說,卻非常實用的工具包,文末提供技術交流群,歡迎大家一起學習討論。

歡迎關注 ,專注Python、數據分析、數據挖掘、好玩工具!

本文介紹一些我們可能很少聽過,但是對于特定問題或者特定任務來說,卻非常實用的工具包,文末提供技術交流群,歡迎大家一起學習討論。

為了配合上述 Python 庫的使用,我們先從 Kaggle 上下載一個數據 – Animal Care and Control Adopted Animals

https://www.kaggle.com/jinbonnie/animal-data

import pandas as pddf = pd.read_csv("animal-data-1.csv")print("Number of pets:", len(df))print(df.head(3))

Number of pets: 10290

          id           intakedate intakereason  istransfer sheltercode  /    0  15801  2009-11-28 00:00:00       Moving           0   C09115463    1  15932  2009-12-08 00:00:00       Moving           0   D09125594    2  28859  2012-08-10 00:00:00    Abandoned           0   D12082309      identichipnumber animalname                breedname basecolour speciesname  /    0       0A115D7358     Jadzia      Domestic Short Hair     Tortie         Cat    1       0A11675477      Gonzo  German Shepherd Dog/Mix        Tan         Dog    2       0A13253C7B     Maggie  Shep Mix/Siberian Husky    Various         Dog       ...         movementdate movementtype istrial returndate returnedreason  /    0  ...  2017-05-13 00:00:00     Adoption     0.0        NaN          Stray    1  ...  2017-04-24 00:00:00     Adoption     0.0        NaN          Stray    2  ...  2017-04-15 00:00:00     Adoption     0.0        NaN          Stray       deceaseddate deceasedreason diedoffshelter puttosleep isdoa    0           NaN   Died in care              0          0     0    1           NaN   Died in care              0          0     0    2           NaN   Died in care              0          0     0    [3 rows x 23 columns]

下面我們就進入這些 Python 庫的介紹

1. Missingno

Missingno 是用于在數據集當中顯示缺失值的,這對于我們的數據分析來說是非常有用的。而且還能做成熱力圖或者條形圖,來更加直觀的觀察缺失值

  • matrix - 類似于 seaborn 中的缺失值熱圖,可以最多展示數據集中50列的密度情況,也可以通過右側的迷你圖,來整體觀測數據集的缺失情況

  • bar - 案列顯示缺失值情況

  • heatmap - 展示缺失值之間的相關性,本質上,揭示了變量的存在與否對另一個變量的存在的影響程度。而對于沒有缺失值的列或者全完沒有值的列,則不會出現在這里

  • dendrogram - 樹狀圖與熱圖類似,展示的是列之間缺失的相關性,而與熱圖不同的地方是通過一組列來揭示相關性

下面我們就來具體看看這些圖表

import missingno as msnomsno.matrix(df)

msno.bar(df)

msno.heatmap(df)

msno.dendrogram(df)

對于 missingno 圖表,我們還可以自定義一些參數

msno.matrix(            df,            figsize=(25,7),            fontsize=30,            sort="descending",            color=(0.494, 0.184, 0.556),            width_ratios=(10, 1)            )

最后我們還可以與 matplotlib 相結合,制作更加優美的圖表

import matplotlib.pyplot as pltmsno.matrix(            df,            figsize=(25,7),            fontsize=30,            sort="descending",            color=(0.494, 0.184, 0.556),            width_ratios=(10, 1),            inline=False            )plt.title("Missing Values Pet Dataset", fontsize=55)plt.show()

2. Tabulate

這個庫可以在 Python 中打印出漂亮的表格,允許智能和可定制的列對齊、數字和文本格式、小數點對齊,也是一個數據分析過程中的好用工具。支持的數據類型包括 dataframe, list of lists or dictionaries, dictionary, NumPy array

from tabulate import tabulatedf_pretty_printed = df.iloc[:5, [1,2,4,6]]print(tabulate(df_pretty_printed))
-  -----------  -----------------------  ------  -----0  Jadzia       Domestic Short Hair      Female  Stray1  Gonzo        German Shepherd Dog/Mix  Male    Stray2  Maggie       Shep Mix/Siberian Husky  Female  Stray3  Pretty Girl  Domestic Short Hair      Female  Stray4  Pretty Girl  Domestic Short Hair      Female  Stray-  -----------  -----------------------  ------  -----

我們還可以自定義表格頭,使用參數 headers

print(tabulate(               df_pretty_printed,               headers="keys",               tablefmt="fancy_grid",               stralign="center"               ))
│    │  animalname  │        breedname        │  sexname  │  returnedreason  │╞════╪══════════════╪═════════════════════════╪═══════════╪══════════════════╡│  0 │    Jadzia    │   Domestic Short Hair   │  Female   │      Stray       │├────┼──────────────┼─────────────────────────┼───────────┼──────────────────┤│  1 │    Gonzo     │ German Shepherd Dog/Mix │   Male    │      Stray       │├────┼──────────────┼─────────────────────────┼───────────┼──────────────────┤│  2 │    Maggie    │ Shep Mix/Siberian Husky │  Female   │      Stray       │├────┼──────────────┼─────────────────────────┼───────────┼──────────────────┤│  3 │ Pretty Girl  │   Domestic Short Hair   │  Female   │      Stray       │├────┼──────────────┼─────────────────────────┼───────────┼──────────────────┤│  4 │ Pretty Girl  │   Domestic Short Hair   │  Female   │      Stray       │╘════╧══════════════╧═════════════════════════╧═══════════╧══════════════════╛

不過這個庫打印出的表格數據在手機屏幕上會有一定的兼容性問題,只有在PC機上才能有最佳的顯示效果

3. Wikipedia

維基百科庫,可以方便的訪問維基百科信息,以及獲取數據

該庫的幾個主要功能如下:

  • 搜索維基百科 - search()

  • 獲取文章摘要 - summary

  • 獲取完整頁面內容,包括圖像、鏈接等 - page()

  • 選擇語言 - set_lang()

我們以上面數據集當中的 Siberian Husky 為關鍵詞,在維基百科中設置為俄語搜索一下,看看結果

import wikipediawikipedia.set_lang("ru")print(wikipedia.search("Siberian Husky"))
["Сибирский хаски", "Древние породы собак", "Маккензи Ривер Хаски", "Породы собак по классификации кинологических организаций", "Ричардсон, Кевин Майкл"]

我們獲取第一個搜索結果當中的第一段話

print(wikipedia.summary("Сибирский хаски", sentences=1))
Сибирский хаски — заводская специализированная порода собак, выведенная чукчами северо-восточной части Сибири и зарегистрированная американскими кинологами в 1930-х годах как ездовая собака, полученная от аборигенных собак Дальнего Востока России, в основном из Анадыря, Колымы, Камчатки у местных оседлых приморских племён — юкагиров, кереков, азиатских эскимосов и приморских чукчей — анкальын (приморские, поморы — от анкы (море)).

下面我們再來獲取圖片信息

print(wikipedia.page("Сибирский хаски").images[0])

就可以拿到圖片了

4. Wget

對于這個庫,熟悉 Linux 的同學應該都知道,一個好用的 shell 命令也叫做 wget,是用來下載文件的,這個 Python 庫也有著同樣的功能

我們來試試下載上面哈士奇圖片吧

import wgetwget.download("https://upload.wikimedia.org/wikipedia/commons/a/a3/Black-Magic-Big-Boy.jpg")
"Black-Magic-Big-Boy.jpg"

當然使用該庫,我們還可以方便的下載 HTML 文件

wget.download("https://www.kaggle.com/jinbonnie/animal-data")
"animal-data"

下載好的文件內容類似:

<!DOCTYPE html><html lang="en"><head>    <title>Animal Care and Control Adopted Animals | Kaggle</title>    <meta charset="utf-8" />    <meta name="robots" content="index, follow" />    <meta name="description" content="animal situation in Bloomington Animal Shelter from 2017-2020" />    <meta name="turbolinks-cache-control" content="no-cache" />

5. Faker

這個庫是用來生成假數據的,這個在我們平時的程序測試當中還是非常好用的。它可以生成包括名字、郵件地址、電話號碼、工作、句子、顏色,貨幣等等眾多假數據,同時還支持本地化,也就是可以將當前工作語言環境作為參數,生成當前語言的假數據,實在是太貼心了

from faker import Fakerfake = Faker()print(      "Fake color:", fake.color(), "/n"      "Fake job:",   fake.job(),   "/n"      "Fake email:", fake.email(), "/n"      )# Printing a list of fake Korean and Portuguese addressesfake = Faker(["ko_KR", "pt_BR"])for _ in range(5):    print(fake.unique.address())     # using the `.unique` propertyprint("/n")# Assigning a seed number to print always the same value / data setfake = Faker()Faker.seed(3920)print("This English fake name is always the same:", fake.name())
Fake color: #212591Fake job: Occupational therapistFake email: nancymoody@hotmail.comEstrada Lavínia da Luz, 62Oeste85775858 Moura / SEResidencial de Moreira, 57Morro Dos Macacos75273529 Farias / TO??????? ??? ???? (??????)???? ??? ????? (????)???? ??? ??53?This English fake name is always the same: Kim Lopez

我們再回到我們的動物數據集,我們發現有兩個動物的名字不是特別好

df_bad_names = df[df["animalname"].str.contains("Stink|Pooh")]print(df_bad_names)
identichipnumber animalname            breedname speciesname sexname  /1692              NaN    Stinker  Domestic Short Hair         Cat    Male3336  981020023417175       Pooh  German Shepherd Dog         Dog  Female3337  981020023417175       Pooh  German Shepherd Dog         Dog  Female               returndate                     returnedreason1692                  NaN                              Stray3336  2018-05-14 00:00:00  Incompatible with owner lifestyle3337                  NaN                              Stray

下面我們分別為這兩只貓狗重新命名一個好聽的名字

# Defining a function to rename the unlucky petsdef rename_pets(name):    if name == "Stinker":        fake = Faker()        Faker.seed(162)        name = fake.name()    if name == "Pooh":        fake = Faker(["de_DE"])        Faker.seed(20387)        name = fake.name()    return name# Renaming the petsdf["animalname"] = df["animalname"].apply(rename_pets)# Checking the resultsprint(df.iloc[df_bad_names.index.tolist(), :] )
identichipnumber            animalname            breedname speciesname  /1692              NaN         Steven Harris  Domestic Short Hair         Cat3336  981020023417175  Helena Fliegner-Karz  German Shepherd Dog         Dog3337  981020023417175  Helena Fliegner-Karz  German Shepherd Dog         Dog     sexname           returndate                     returnedreason1692    Male                  NaN                              Stray3336  Female  2018-05-14 00:00:00  Incompatible with owner lifestyle3337  Female                  NaN                              Stray

怎么樣,名字是不是好聽多了

6. Numerizer

該庫可以將自然語言轉化為數字,我們來看看吧
我們先來獲取名稱中包含數據的動物的信息

df_numerized_names = df[["identichipnumber", "animalname", "speciesname"]]/                        [df["animalname"].str.contains("Two|Seven|Fifty")]df_numerized_names

下面我們就把名稱中的數字轉化成阿拉伯數字

from numerizer import numerizedf["animalname"] = df["animalname"].apply(lambda x: numerize(x))df[["identichipnumber", "animalname", "speciesname"]].iloc[df_numerized_names.index.tolist(), :]

7. Emoji

符號庫,我們可以根據 Unicode Consortium 2 定義的表情符號代碼將字符串轉換為表情符號,emoji 庫只有兩個函數:emojize()demojize()

import emojiprint(emoji.emojize(":koala:"))print(emoji.demojize(""))print(emoji.emojize(":rana:", language="it"))
?:koala:?

下面我們來符號化我們的動物吧

print(df["speciesname"].unique())
["Cat" "Dog" "House Rabbit" "Rat" "Bird" "Opossum" "Chicken" "Wildlife" "Ferret" "Tortoise" "Pig" "Hamster" "Guinea Pig" "Gerbil" "Lizard""Hedgehog" "Chinchilla" "Goat" "Snake" "Squirrel" "Sugar Glider" "Turtle""Tarantula" "Mouse" "Raccoon" "Livestock" "Fish"]

我們要將字母全部轉化為小寫,然后在前后分別添加冒號

df["speciesname"] = df["speciesname"].apply(lambda x: emoji.emojize(f":{x.lower()}:",                                                                    use_aliases=True))print(df["speciesname"].unique())
["" "" ":house rabbit:" "" "" ":opossum:" "" ":wildlife:" ":ferret:"":tortoise:" "" "" ":guinea pig:" ":gerbil:" "" "" ":chinchilla:" """" ":squirrel:" ":sugar glider:" "" ":tarantula:" "" "" ":livestock:"""]

再進行名稱同義詞轉化

df["speciesname"] = df["speciesname"].str.replace(":house rabbit:", ":rabbit:")/                                         .replace(":tortoise:", ":turtle:")/                                         .replace(":squirrel:", ":chipmunk:")df["speciesname"] = df["speciesname"].apply(lambda x: emoji.emojize(x, variant="emoji_type"))print(df["speciesname"].unique())
["" "" "?" "" "" ":opossum:?" "" ":wildlife:?" ":ferret:?" "?" """" ":guinea pig:" ":gerbil:?" "" "" ":chinchilla:?" "" "" """:sugar glider:" "" ":tarantula:?" "" "" ":livestock:?" ""]

對于剩下的這些沒有對應動物名稱的數據,我們再轉化會原來的數據形式

df["speciesname"] = df["speciesname"].str.replace(":", "").apply(lambda x: x.title())print(df["speciesname"].unique())df[["animalname", "speciesname", "breedname"]].head(3)
["" "" "?" "" "" "Opossum?" "" "Wildlife?" "Ferret?" "?" "" """Guinea Pig" "Gerbil?" "" "" "Chinchilla?" "" "" "" "Sugar Glider""" "Tarantula?" "" "" "Livestock?" ""]

這樣,我們就完成了符號化動物名稱了

8. PyAztro

這個庫的創造可能僅僅是為了娛樂吧,該庫可以預測每一天不同星座的幸運數字、幸運時間、幸運顏色等等,感興趣的朋友可以玩一玩

import pyaztropyaztro.Aztro(sign="taurus").description
"You need to make a radical change in some aspect of your life - probably related to your home. It could be time to buy or sell or just to move on to some more promising location."

我們再來看看我們的數據集,在我們的數據集中,有一只貓和一只狗叫 Aries(白羊座)

df[["animalname", "speciesname"]][(df["animalname"] == "Aries")]

還有很多動物叫做 Leo (獅子座)

print("Leo:", df["animalname"][(df["animalname"] == "Leo")].count())
Leo: 18

我們假設這就是動物們的星座,然后來使用該庫預測他們的運勢吧

aries = pyaztro.Aztro(sign="aries")leo = pyaztro.Aztro(sign="leo")print("ARIES: /n",      "Sign:",             aries.sign,          "/n",      "Current date:",     aries.current_date,  "/n",      "Date range:",       aries.date_range,    "/n",      "Sign description:", aries.description,   "/n",      "Mood:",             aries.mood,          "/n",      "Compatibility:",    aries.compatibility, "/n",      "Lucky number:",     aries.lucky_number,  "/n",      "Lucky time:",       aries.lucky_time,    "/n",      "Lucky color:",      aries.color,       
                 
               
              

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/120917.html

相關文章

  • Vue中你不知道但卻很實用黑科技

    摘要:最近數月一直投身于的開源工作中,完成了大大小小多個組件,在組件化開發中積累了不少經驗。在開發全局提示組件通知提醒組件對話框組件時,內部都是使用來渲染,但卻是來隱式地創建這些實例,這樣我們就可以像標題這樣使用,但其內部還是通過來管理。 最近數月一直投身于 iView 的開源工作中,完成了大大小小 30 多個 UI 組件,在 Vue 組件化開發中積累了不少經驗。其中也有很多帶有技巧性和黑科...

    Heier 評論0 收藏0
  • Vue中你不知道但卻很實用黑科技

    摘要:最近數月一直投身于的開源工作中,完成了大大小小多個組件,在組件化開發中積累了不少經驗。在開發全局提示組件通知提醒組件對話框組件時,內部都是使用來渲染,但卻是來隱式地創建這些實例,這樣我們就可以像標題這樣使用,但其內部還是通過來管理。 最近數月一直投身于 iView 的開源工作中,完成了大大小小 30 多個 UI 組件,在 Vue 組件化開發中積累了不少經驗。其中也有很多帶有技巧性和黑科...

    NicolasHe 評論0 收藏0
  • 大學四年學計算機最值得看技術書,要讀就讀最好書,程序員精品書單!

    摘要:其他語言數據結構跟算法一樣是在開始寫代碼的時候用得很少,都有著包裝好的現成東西供你使用,但同樣是面試和崗位上升會用得到,我就不說數據結構對代碼有多少好處,請記住一句話能夠實現個功能和能夠最優地實現個功能,是完全不同級別的要求。 ...

    liangzai_cool 評論0 收藏0
  • Python 基礎起步 (六) List實用技巧大全

    摘要:如果還有不明白的小白朋友們可以百度一下哈,嗖的一下百家號補習班就出來啦,哈哈,你啥都沒查到開個小玩笑。 ## List初步進階 ## hello,大家好,經過上篇筆記的介紹,我們已經對List這種數據類型有了初步的理解,今天我要趁熱打鐵,為大家介紹一些實用的List技巧,希望能幫助到各位大家~ extend合并列表() first_lst = [I,am,noob] s...

    shevy 評論0 收藏0
  • 數據中心運維祖訓“沒有折騰,就沒有故障”

    摘要:數據中心運維也喜靜不喜動,少動慎動,這能最大程度減少故障發生。不過,的確是應該最大限度地去主動降低數據中心操作頻率,盡量少動,這樣可極大降低故障發生概率。作為數據中心的運維人,要時刻牢記祖訓。沒有折騰,就沒有故障這句話雖糙,但卻很有道理,尤其在運維上。據有關咨詢機構統計,數據中心的故障中有百分之七十是人為故障,也就是與人的活動強相關,可見人對于數據中心來說是多么可怕。人為故障其中也可以分為有...

    FleyX 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<