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

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

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

數(shù)據(jù)分析必備的NumPy技巧(Python)

zhKF_jqr_AI ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-05 15:41 ? 次閱讀

前言

NumPy系統(tǒng)是Python的一種開源的數(shù)值計算擴展,它也是是Python數(shù)據(jù)分析必不可少的第三方庫。近日,國外博主Selva Prabhakaran制作了101道真題,為熟悉/不熟悉NumPy的“后備數(shù)據(jù)科學(xué)家”們提供了一個檢測自己水平的機會,你不想來挑戰(zhàn)一下嗎?本文中的NumPy真題旨在提供一個參考,讀者可以借此測試自己數(shù)據(jù)分析技巧的掌握水平。

1.導(dǎo)入NumPy并查看版本

難度:L1

01

導(dǎo)入NumPy并將它并名為np,輸出版本信息。

點擊空白處查看答案

import numpy as np

print(np.__version__)

#> 1.13.3

無論你要做什么,你必須在其他代碼前先輸入import numpy as np,這之后它才能正常工作。如果還沒有安裝,你可以去anaconda下載。

2.如何創(chuàng)建一維數(shù)組?

難度:L1

02

創(chuàng)建一個包含數(shù)字0-9的一維數(shù)組:#> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])。

點擊空白處查看答案

arr = np.arange(10)

arr

#> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

3.如何創(chuàng)建布爾型數(shù)組?

難度:L1

03

創(chuàng)建一個3×3的,所有填充為True的數(shù)組。

點擊空白處查看答案

np.full((3, 3), True, dtype=bool)

#> array([[ True, True, True],

#> [ True, True, True],

#> [ True, True, True]], dtype=bool)

# Alternate method:

np.ones((3,3), dtype=bool)

4.如何從一維數(shù)組中索引符合條件的元素?

難度:L1

04

從輸入arr中篩選出所有奇數(shù)。

輸入:

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])`

期望的輸出:

#> array([1, 3, 5, 7, 9])

# Input

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

# Solution

arr[arr % 2 == 1]

#> array([1, 3, 5, 7, 9])

5.如何用另一個值替換數(shù)組中符合條件的元素?

難度:L1

05

用-1替換輸入arr中的所有奇數(shù)。

輸入:

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

期望的輸出:

#> array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])

點擊空白處查看答案

arr[arr % 2 == 1] = -1

arr

#> array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])

6.如何在確保輸入數(shù)組不變的同時替換數(shù)組中符合條件的元素?

難度:L2

06

用-1替換輸入arr中的所有奇數(shù),但不能改變arr。

輸入:

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

期望的輸出:

out#> array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])arr#> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

arr = np.arange(10)

out = np.where(arr % 2 == 1, -1, arr)

print(arr)

out

#> [0 1 2 3 4 5 6 7 8 9]

array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])

7.如何重組數(shù)組?

難度:L1

07

將一維數(shù)組轉(zhuǎn)換為有2行的二維數(shù)組。

輸入:

np.arange(10)#> array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

期望的輸出:

#> array([[0, 1, 2, 3, 4],#> [5, 6, 7, 8, 9]])

arr = np.arange(10)

arr.reshape(2, -1) # Setting to -1 automatically decides the number of cols

#> array([[0, 1, 2, 3, 4],

#> [5, 6, 7, 8, 9]])

8.如何垂直合并兩個數(shù)組?

難度:L2

08

將數(shù)組a和數(shù)組b垂直合并。

輸入:

a = np.arange(10).reshape(2,-1)b = np.repeat(1, 10).reshape(2,-1)

期望的輸出:

#> array([[0, 1, 2, 3, 4],

#> [5, 6, 7, 8, 9],

#> [1, 1, 1, 1, 1],

#> [1, 1, 1, 1, 1]])

a = np.arange(10).reshape(2,-1)

b = np.repeat(1, 10).reshape(2,-1)

# Answers

# Method 1:

np.concatenate([a, b], axis=0)

# Method 2:

np.vstack([a, b])

# Method 3:

np.r_[a, b]

#> array([[0, 1, 2, 3, 4],

#> [5, 6, 7, 8, 9],

#> [1, 1, 1, 1, 1],

#> [1, 1, 1, 1, 1]])

9.如何水平合并兩個數(shù)組?

難度:L2

09

將數(shù)組a和數(shù)組b水平合并。

輸入:

a = np.arange(10).reshape(2,-1)b = np.repeat(1, 10).reshape(2,-1)

期望的輸出:

#> array([[0, 1, 2, 3, 4, 1, 1, 1, 1, 1],#> [5, 6, 7, 8, 9, 1, 1, 1, 1, 1]])

a = np.arange(10).reshape(2,-1)

b = np.repeat(1, 10).reshape(2,-1)

# Answers

# Method 1:

np.concatenate([a, b], axis=1)

# Method 2:

np.hstack([a, b])

# Method 3:

np.c_[a, b]

#> array([[0, 1, 2, 3, 4, 1, 1, 1, 1, 1],

#> [5, 6, 7, 8, 9, 1, 1, 1, 1, 1]])

10.如何在沒有hardcode的情況下在NumPy里生成自定義數(shù)組?

難度:L2

10

在沒有hardcode的情況下,用數(shù)組a和NumPy函數(shù)輸出以下目標(biāo)數(shù)組。

輸入:

a = np.array([1,2,3])

期望的輸出:

#> array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])

點擊空白處查看答案

np.r_[np.repeat(a, 3), np.tile(a, 3)]

#> array([1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3])

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

    關(guān)注

    2

    文章

    1393

    瀏覽量

    33907
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84068

原文標(biāo)題:真題演練(一):數(shù)據(jù)分析必備的NumPy技巧(Python)

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    網(wǎng)絡(luò)爬蟲,Python數(shù)據(jù)分析

    電子發(fā)燒友網(wǎng)站提供《網(wǎng)絡(luò)爬蟲,Python數(shù)據(jù)分析.pdf》資料免費下載
    發(fā)表于 07-13 09:27 ?0次下載

    數(shù)據(jù)分析除了spss還有什么

    數(shù)據(jù)分析是當(dāng)今世界中一個非常重要的領(lǐng)域,它涉及到從大量數(shù)據(jù)中提取有用信息、發(fā)現(xiàn)模式和趨勢,并為決策提供支持。SPSS(Statistical Package for the Social
    的頭像 發(fā)表于 07-05 15:01 ?358次閱讀

    數(shù)據(jù)分析的工具有哪些

    數(shù)據(jù)分析是一個涉及收集、處理、分析和解釋數(shù)據(jù)以得出有意義見解的過程。在這個過程中,使用正確的工具至關(guān)重要。以下是一些主要的數(shù)據(jù)分析工具,以及它們的功能和用途的介紹。 Excel Exc
    的頭像 發(fā)表于 07-05 14:54 ?516次閱讀

    數(shù)據(jù)分析有哪些分析方法

    數(shù)據(jù)分析是一種重要的技能,它可以幫助我們從大量的數(shù)據(jù)中提取有價值的信息,從而做出更明智的決策。在這篇文章中,我們將介紹數(shù)據(jù)分析的各種方法,包括描述性分析、診斷性
    的頭像 發(fā)表于 07-05 14:51 ?321次閱讀

    機器學(xué)習(xí)在數(shù)據(jù)分析中的應(yīng)用

    隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)量的爆炸性增長對數(shù)據(jù)分析提出了更高的要求。機器學(xué)習(xí)作為一種強大的工具,通過訓(xùn)練模型從數(shù)據(jù)中學(xué)習(xí)規(guī)律,為企業(yè)和組織提供了更高效、更準確的
    的頭像 發(fā)表于 07-02 11:22 ?300次閱讀

    求助,關(guān)于AD采集到的數(shù)據(jù)分析問題

    問題描述:使用AD采集一個10Hz到2MHz的脈沖,脈沖底部可能大于零,由采集到的數(shù)據(jù)分析出該脈沖的上升時間,幅值和占空比。 備注:在分析的時候已經(jīng)知道脈沖的頻率,精度為2X10^-5. 在分析
    發(fā)表于 05-09 07:40

    python 學(xué)習(xí):在內(nèi)網(wǎng)中 python庫-numpy 安裝方法,升級pip3版本的指令

    \\\\numpy-1.26.4-cp311-cp311-win_amd64.whl 內(nèi)網(wǎng)中升級pip 升級版本的指令: python.exe -m pip install --upgrade pip--proxy \"http://gateway.schneider.z
    發(fā)表于 04-22 17:18

    Get職場新知識:做分析,用大數(shù)據(jù)分析工具

    為什么企業(yè)每天累積那么多的數(shù)據(jù),也做數(shù)據(jù)分析,但最后決策還是靠經(jīng)驗?很大程度上是因為這些數(shù)據(jù)都被以不同的指標(biāo)和存儲方式放在各自的系統(tǒng)中,這就導(dǎo)致了數(shù)據(jù)
    發(fā)表于 12-05 09:36

    python第三方庫有哪些

    PythonNumPyPython 中最重要且最常用的科學(xué)計算庫之一。它提供了支持大型、多維數(shù)組和矩陣運算的高性能數(shù)學(xué)函數(shù)和計算工具。NumPy 的使用極為廣泛,尤其在
    的頭像 發(fā)表于 11-29 14:31 ?1927次閱讀

    Anaconda:Python 數(shù)據(jù)分析與挖掘好幫手

    Python進行數(shù)據(jù)分析的時候,你會不會煩惱要安裝那么多的模塊?比如Pandas、Numpy、matplotlib、scipy等等,而當(dāng)你接手的項目是由不同的Python版本編寫的時
    的頭像 發(fā)表于 11-02 16:00 ?461次閱讀
    Anaconda:<b class='flag-5'>Python</b> <b class='flag-5'>數(shù)據(jù)分析</b>與挖掘好幫手

    Pandas:Python中最好的數(shù)據(jù)分析工具

    Pandas絕對是Python中最好的數(shù)據(jù)分析工具,不接受反駁。 本文將展示如何美化 Pandas DataFrame 中的數(shù)字,并使用一些更高級的 Pandas 樣式可視化選項,來提高您
    的頭像 發(fā)表于 10-31 10:47 ?389次閱讀
    Pandas:<b class='flag-5'>Python</b>中最好的<b class='flag-5'>數(shù)據(jù)分析</b>工具

    Sweetviz: 讓你三行代碼實現(xiàn)探索性數(shù)據(jù)分析

    Sweetviz是一個開源Python庫,它只需三行代碼就可以生成漂亮的高精度可視化效果來啟動EDA(探索性數(shù)據(jù)分析)。輸出一個HTML。 它不僅能根據(jù)性別、年齡等不同欄目縱向分析數(shù)據(jù)
    的頭像 發(fā)表于 10-31 10:28 ?819次閱讀
    Sweetviz: 讓你三行代碼實現(xiàn)探索性<b class='flag-5'>數(shù)據(jù)分析</b>

    List和Numpy Array有什么區(qū)別

    List 列表。列表是最常見的Python數(shù)據(jù)類型之一,它可以調(diào)整大小并且包含不同類型的元素,非常方便。 那么List和Numpy Array到底有什么區(qū)別?為什么我們需要在大數(shù)據(jù)
    的頭像 發(fā)表于 10-30 10:49 ?649次閱讀
    List和<b class='flag-5'>Numpy</b> Array有什么區(qū)別

    yfinance:獲取數(shù)據(jù)Python第三方模塊

    之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章: 超詳細Python安裝指南 進行安裝。 **(可選1) **如果你用Python的目的是數(shù)據(jù)分析,
    的頭像 發(fā)表于 10-21 14:32 ?1967次閱讀

    Python in Excel,讓你的數(shù)據(jù)分析直達專家級

    Python in Excel 可使用Python這門強大的編程語言來操作和分析數(shù)據(jù),無需額外安裝或設(shè)置便能提供 更多樣式、更加智能的數(shù)據(jù)分析
    的頭像 發(fā)表于 10-18 16:20 ?412次閱讀
    <b class='flag-5'>Python</b> in Excel,讓你的<b class='flag-5'>數(shù)據(jù)分析</b>直達專家級