0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(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ù)科學家”們提供了一個檢測自己水平的機會,你不想來挑戰(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ù)輸出以下目標數(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)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)分析
    +關(guān)注

    關(guān)注

    2

    文章

    1457

    瀏覽量

    34092
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4802

    瀏覽量

    84885

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    Mathematica 在數(shù)據(jù)分析中的應(yīng)用

    數(shù)據(jù)分析是現(xiàn)代科學研究和商業(yè)決策中不可或缺的一部分。隨著數(shù)據(jù)量的爆炸性增長,對數(shù)據(jù)分析工具的需求也在不斷增加。Mathematica,作為一種強大的計算軟件,以其獨特的符號計算能力和廣泛的內(nèi)置函數(shù)庫
    的頭像 發(fā)表于 12-26 15:41 ?153次閱讀

    數(shù)據(jù)可視化與數(shù)據(jù)分析的關(guān)系

    在當今這個信息爆炸的時代,數(shù)據(jù)無處不在。無論是企業(yè)運營、科學研究還是個人決策,我們都需要從海量的數(shù)據(jù)中提取有價值的信息。數(shù)據(jù)分析數(shù)據(jù)可視化作為兩個關(guān)鍵的工具,它們幫助我們理解、解釋和
    的頭像 發(fā)表于 12-06 17:09 ?393次閱讀

    eda與傳統(tǒng)數(shù)據(jù)分析的區(qū)別

    EDA(Exploratory Data Analysis,探索性數(shù)據(jù)分析)與傳統(tǒng)數(shù)據(jù)分析之間存在顯著的差異。以下是兩者的主要區(qū)別: 一、分析目的和方法論 EDA 目的 :EDA的主要目的是對
    的頭像 發(fā)表于 11-13 10:52 ?381次閱讀

    raid 在大數(shù)據(jù)分析中的應(yīng)用

    RAID(Redundant Array of Independent Disks,獨立磁盤冗余陣列)在大數(shù)據(jù)分析中的應(yīng)用主要體現(xiàn)在提高存儲系統(tǒng)的性能、可靠性和容量上。以下是RAID在大數(shù)據(jù)分析
    的頭像 發(fā)表于 11-12 09:44 ?273次閱讀

    云計算在大數(shù)據(jù)分析中的應(yīng)用

    云計算在大數(shù)據(jù)分析中的應(yīng)用廣泛且深入,它為用戶提供了存儲、計算、分析和預(yù)測的強大能力。以下是對云計算在大數(shù)據(jù)分析中應(yīng)用的介紹: 一、存儲和處理海量數(shù)據(jù) 云計算提供了強大的存儲和計算能力
    的頭像 發(fā)表于 10-24 09:18 ?529次閱讀

    使用AI大模型進行數(shù)據(jù)分析的技巧

    使用AI大模型進行數(shù)據(jù)分析的技巧涉及多個方面,以下是一些關(guān)鍵的步驟和注意事項: 一、明確任務(wù)目標和需求 在使用AI大模型之前,首先要明確數(shù)據(jù)分析的任務(wù)目標,這將直接影響模型的選擇、數(shù)據(jù)收集和處理方式
    的頭像 發(fā)表于 10-23 15:14 ?966次閱讀

    IP 地址大數(shù)據(jù)分析如何進行網(wǎng)絡(luò)優(yōu)化?

    一、大數(shù)據(jù)分析在網(wǎng)絡(luò)優(yōu)化中的作用 1.流量分析數(shù)據(jù)分析可以對網(wǎng)絡(luò)中的流量進行實時監(jiān)測和分析,了解網(wǎng)絡(luò)的使用情況和流量趨勢。通過對流量數(shù)據(jù)
    的頭像 發(fā)表于 10-09 15:32 ?266次閱讀
    IP 地址大<b class='flag-5'>數(shù)據(jù)分析</b>如何進行網(wǎng)絡(luò)優(yōu)化?

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

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

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

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

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

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

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

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

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

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

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

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

    python 學習:在內(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

    態(tài)勢數(shù)據(jù)分析系統(tǒng)軟件

    智慧華盛恒輝態(tài)勢分析軟件系統(tǒng)的功能描述、部署環(huán)境、界面使用、技術(shù)支持及一些常見問題及其解決辦法等。為數(shù)據(jù)態(tài)勢分析軟件系統(tǒng)的管理人員和使用人員提供說明。 智慧華盛恒輝態(tài)勢數(shù)據(jù)分析系統(tǒng)軟件
    的頭像 發(fā)表于 04-22 11:36 ?468次閱讀