NumPy學的還不錯?來試試這20題

2021-01-10 AI科技大本營

又到了NumPy進階修煉專題。NumPy大家應該不陌生了,看了太多的原理講解之後,用刷題來學習是最有效的方法,本文將帶來20個NumPy經典問題,附贈20段實用代碼,拿走就用,建議打開Jupyter Notebook邊敲邊看。

數據查找

問:如何獲得兩個數組之間的相同元素

輸入:

import numpy as npimport pandas as pdimport warningswarnings.filterwarnings("ignore")arr1 = np.random.randint(10,6,6)arr2 = np.random.randint(10,6,6)答案:

arr1 = np.random.randint(10,6,6)arr2 = np.random.randint(10,6,6)print("arr1: %s"%arr1)print("arr2: %s"%arr2)np.intersect1d(arr1,arr2)

數據修改

問:如何從一個數組中刪除另一個數組存在的元素

輸入:

arr1 = np.random.randint(10,6,6)arr2 = np.random.randint(10,6,6)答案:

arr1 = np.random.randint(1,10,10)arr2 = np.random.randint(1,10,10)print("arr1: %s"%arr1)print("arr2: %s"%arr2)np.setdiff1d(arr1,arr2)

數據修改

問:如何修改一個數組為只讀模式

輸入:

arr1 = np.random.randint(1,10,10)答案:

arr1 = np.random.randint(1,10,10)arr1.flags.writeable = False

數據轉換

問:如何將list轉為numpy數組

輸入:

a = [1,2,3,4,5]答案:

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

數據轉換

問:如何將pd.DataFrame轉為numpy數組

輸入:

df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})答案:

df.values

數據分析

問:如何使用numpy進行描述性統計分析

輸入:

arr1 = np.random.randint(1,10,10)arr2 = np.random.randint(1,10,10)答案:

arr1 = np.random.randint(1,10,10)arr2 = np.random.randint(1,10,10)print("arr1的平均數為:%s" %np.mean(arr1))print("arr1的中位數為:%s" %np.median(arr1))print("arr1的方差為:%s" %np.var(arr1))print("arr1的標準差為:%s" %np.std(arr1))print("arr1,arr的相關性矩陣為:%s" %np.cov(arr1,arr2))print("arr1,arr的協方差矩陣為:%s" %np.corrcoef(arr1,arr2))

數據抽樣

問:如何使用numpy進行概率抽樣

arr = np.array([1,2,3,4,5])輸入:

arr = np.array([1,2,3,4,5])np.random.choice(arr,10,p = [0.1,0.1,0.1,0.1,0.6])答案:

數據創建

問:如何為數據創建副本

輸入:

arr = np.array([1,2,3,4,5])答案:

#對副本數據進行修改,不會影響到原始數據arr = np.array([1,2,3,4,5])arr1 = arr.copy

數據切片

問:如何對數組進行切片

輸入:

arr = np.arange(10)備註:從索引2開始到索引8停止,間隔為2

答案:

arr = np.arange(10)a = slice(2,8,2)arr[a] #等價於arr[2:8:2]

字符串操作

問:如何使用NumPy操作字符串

輸入:

str1 = ['I love']str2 = [' Python']答案:

#拼接字符串str1 = ['I love']str2 = [' Python']print(np.char.add(str1,str2))#大寫首字母str3 = np.char.add(str1,str2)print(np.char.title(str3))

數據修改

問:如何對數據向上/下取整

輸入:

arr = np.random.uniform(0,10,10)答案:

arr = np.random.uniform(0,10,10)print(arr)###向上取整print(np.ceil(arr))###向下取整print(np.floor(arr) )

格式修改

問:如何取消默認科學計數顯示數據

答案:

np.set_printoptions(suppress=True)

數據修改

問:如何使用NumPy對二維數組逆序

輸入:

arr = np.random.randint(1,10,[3,3])答案:

arr = np.random.randint(1,10,[3,3])print(arr)print('列逆序')print(arr[:, -1::-1])print('行逆序')print(arr[-1::-1, :])

數據查找

問:如何使用NumPy根據位置查找元素

輸入:

arr1 = np.random.randint(1,10,5)arr2 = np.random.randint(1,20,10)備註:在arr2中根據arr1中元素以位置查找

答案:

arr1 = np.random.randint(1,10,5)arr2 = np.random.randint(1,20,10)print(arr1)print(arr2)print(np.take(arr2,arr1))

數據計算

問:如何使用numpy求餘數

輸入:

a = 10b = 3答案:

np.mod(a,b)

數據計算

問:如何使用NumPy進行矩陣SVD分解

輸入:

A = np.random.randint(1,10,[3,3])答案:

np.linalg.svd(A)

數據篩選

問:如何使用NumPy多條件篩選數據

輸入:

arr = np.random.randint(1,20,10)答案:

arr = np.random.randint(1,20,10)print(arr[(arr>1)&(arr<7)&(arr%2==0)])

數據修改

問:如何使用NumPy對數組分類

備註:將大於等於7,或小於3的元素標記為1,其餘為0

輸入:

arr = np.random.randint(1,20,10)答案:

arr = np.random.randint(1,20,10)print(arr)print(np.piecewise(arr, [arr < 3, arr >= 7], [-1, 1]))

數據修改

問:如何使用NumPy壓縮矩陣

備註:從數組的形狀中刪除單維度條目,即把shape中為1的維度去掉

輸入:

arr = np.random.randint(1,10,[3,1])答案:

arr = np.random.randint(1,10,[3,1])print(arr)print(np.squeeze(arr))

數據計算

問:如何使用numpy求解線性方程組

輸入:

A = np.array([[1, 2, 3], [2, -1, 1], [3, 0, -1]])b = np.array([9, 8, 3])備註:求解Ax=b

答案:

A = np.array([[1, 2, 3], [2, -1, 1], [3, 0, -1]])b = np.array([9, 8, 3])x = np.linalg.solve(A, b)print(x)

以上就是我總結的NumPy經典20題,你都會嗎?並且每題我都只給出了一種解法,而事實上每題都有多種解法,所以你應該思考是否有更好的思路。

員工導致Twitter陷入史詩級加密黑客風暴?官方回應來了點分享

相關焦點

  • 數據分析必備,NumPy進階80題(附下載)
    大家好,今天給大家分享一下NumPy的知識,80道習題涵蓋了NumPy中數組創建、訪問、篩選、修改、計算等常用操作,如果不熟悉NumPy的讀者可以刷一遍,因為裡面的代碼大多拿走就能用,所以如果你已經了解NumPy的基本操作,我更建議將這
  • 100道練習題,玩轉Numpy模塊!(上)
    以下為入門 Numpy 的100題小練習,原為 github 上的開源項目,由和鯨社區的小科翻譯並整理(保留了部分原文作為參考)。受限於篇幅這裡只提供了部分題目的運行結果。友情提示:代碼雖好,自己動手才算學到。1.導入numpy庫並簡寫為 np (★☆☆)(提示: import … as …)import numpy as np2.
  • 小學四年級數學期末卷,圖形題新穎,解答題實用,快來讓孩子試試
    高中家長關心高考,初中家長關心中招,小學家長當然關注孩子的成績了,現在每所小學開始進行期末考試了,期末測試是對學生一次總結與摸底,孩子成績好的,可以在暑期自由玩耍,成績差的,家長得考慮下如何利用暑假提升下孩子對學習的樂趣;今天花小妹給大家分享下小學四年級數學期末卷,看看孩子們的數學題難不難,題量多不多,家有孩子上學的,也可以來做一做
  • 如何把小豬佩奇放到多維空間裡(深入理解numpy中的ndarray對象)
    在使用numpy對ndarray對象進行處理時,我們動輒就會碰到大於二維的數據。這時候,很多小朋友肯定會犯難,如何理解這些數據?怎麼才能在腦海裡把這些數據跟我們的現實生活聯繫起來進行理解呢?今天,我帶大家通過一個實例來深入理解一下這個數據結構。【問 題】我們手頭有一棟新樓房(樓房沒有門牌號),裡面住著n個小豬佩奇。
  • Python中的Numpy基礎20問
    [[16, 17, 18, 19], [20, 21, 22, 23]]])'''切片也是同樣道理。10, 11], [12, 13, 14, 15]], [[16, 17, 18, 19], [20, 21, 22, 23]]])'''如何對數組裡每個元素進行迭代?
  • 看圖學NumPy:掌握n維數組基礎知識點,看這一篇就夠了
    除了在二維或三維數組上初始化外,meshgrid還可以用於索引數組:pd.DataFrame(a).sort_values().to_numpy():通過從左向右所有列進行排序高維數組運算通過重排一維向量或轉換嵌套的Python列表來創建3D數組時,索引的含義為(z,y,x)。第一個索引是平面的編號,然後才是在該平面上的移動:
  • 手把手教你學Numpy——常用API合集
    我們一般常用的是25%,50%和75%這三個值,通過這幾個值,我們很容易對於整個特徵的分布有一個大概的了解。前面三個指標:均值、方差、標準差都很好理解,我們直接看代碼就行。median和percentile分別是求中位數與百分位數,它們不是Numpy當中array的函數,而是numpy的庫函數。所以我們需要把array當做參數傳入。
  • Python學習第117課——numpy中dot的運用舉例
    上節我們學習了最基礎的matrix的運算,可能有小夥伴覺得這都要涉及高等數學知識了,確實如果你想做數據科學、做人工智慧,統計學、概率論等數學知識,尤其是算法是繞不過去的坎,但是不要怕!!!我們現在入門階段知道有這個概念就行,能解決實際問題就行,後面遇到了問題再去深入。現在我們是為了入門,入門之後,你可以根據自身的底子去選擇發展方向。
  • 零基礎學Python—你應該知道的Numpy小技巧
    今天我們來介紹Python中一個非常常用的包,Numpy。這個包可以說對於數據科學家來說也是必備的一個包,對於做人工智慧的同學們,這個包也是使用頻度非常高的。那麼我們今天就來看一下這個包的一些小技巧。前面我也寫過Pandas的兩篇文章,反響也非常不錯,看起來大家對於這種小技巧類的文章還是比較感興趣的。
  • 「百練」成鋼:NumPy 100練
    支持大量的數組與矩陣運算,還提供了大量的數學函數庫,是使用 Python 進行科學計算的基礎包。此外,NumPy 還包含:(1)一個強大的 N 維數組對象;(2)複雜的函數;(3)用於整合 C、C++、Fortran 代碼的工具;(4)可實現線性代數、傅立葉變化、隨機數生成等功能。
  • 3道小學數學智力題:有多少人把所學的知識還給了老師呢?
    小學數學智力題,是把數學知識與趣味元素融合在一起的一種智力題型。數學智力題不僅可以測試一個人的數學學習情況,同時還能啟發人們的智力,重要的是,這類題目通常都有很強的趣味性,因此,小學階段,很多老師喜歡布置這類題目給小學生當作家庭作業。
  • 為什麼要學Numpy,一文總結知識點
    還記得自己剛接觸Pandas、Sklearn、Tensorflow這幾個技術的時候,經常看到文檔和代碼中針對多維數組的創建、變形、乘法等操作,因為不了解這些知識導致難以理解進度緩慢
  • 腦迴路清奇的人,不妨來試試這5道看圖猜謎題,全對的人牛的一批
    這類人,我們往往稱之為腦迴路清奇之人。當然,這裡面並沒有貶義的意思。腦迴路清奇之人,大多數腦部比較靈活,善於思考問題、解決問題。就比如,我們經常會做一些看圖猜成語題,他們往往能夠輕易解答出來。眾所周知,看圖猜成語謎題是一項智力遊戲,他不僅考驗我們掌握的成語量,最主要的是考察我們的觀察力和想像力。而腦迴路清奇之人,在這項智力遊戲中,總是更勝一籌。
  • Numpy高級操作大全!!!
    數組的每個元素可使用 Python 的標準Iterator接口來訪問。是numpy.stack函數的變體,通過堆疊來生成水平的單個數組。[[5 6] [7 8]]水平堆疊:[[1 2 5 6] [3 4 7 8]]3.numpy.vstack是numpy.stack函數的變體,通過堆疊來生成豎直的單個數組。
  • 不懂NumPy 算什麼 Python 程式設計師?|CSDN 博文精選
    作者 | 天元浪子責編 | 郭芮出品 | CSDN 博客大約七八年前,我曾經用 pyOpenGL 畫過地球磁層頂的三維模型,這段代碼至今仍然還運行在某科研機構裡。在那之前,我一直覺得自己是一個合(you)格(xiu)的 Python 程式設計師,似乎無所不能。
  • 如果不懂Numpy,請別說自己是Python程式設計師
    前言大約七八年前,我曾經用 pyOpenGL 畫過地球磁層頂的三維模型,這段代碼至今仍然還運行在某科研機構裡。在那之前,我一直覺得自己是一個合(you)格(xiu)的 python 程式設計師,似乎無所不能。但磁層頂模型的顯示效果令我沮喪——儘管這個模型只有十幾萬個頂點,拖拽、縮放卻非常卡頓。
  • 吃夠了常規麵條,可以試試蟹黃紫蘇鮮醬面,味道獨特還不錯
    吃夠了常規麵條,可以試試蟹黃紫蘇鮮醬面,味道獨特還不錯很多人喜歡吃麵食,因為面這種食物進入身體之後會給我們極大的滿足感,同時也可以給我們的身體提供更多的能量搭配不同的食材,能夠做成不同的味道,這是很多人喜歡吃麵的主要原因。
  • Numpy應用整理
    現在幾乎各種應用場合都會用到numpy,主要有以下幾個原因:numpy提供了很多數值計算和常用算法的函數numpy歸功了很多線性代數的相關操作numpy的執行效率高首先導入numpy庫import numpy as np常規列表應用用numpy建的列表類型都是ndarray,因此我們首先來看np.array
  • Numpy學習打卡task01
    此外,還提供了互補的Python包,SciPy是一個增加了更多類似MATLAB功能的庫,Matplotlib是一個提供類似MATLAB繪圖功能的繪圖包。在內部,MATLAB和NumPy都依靠BLAS和LAPACK進行高效的線性代數計算。廣泛使用的計算機視覺庫OpenCV的Python綁定利用NumPy數組來存儲和操作數據。
  • Python數據分析之numpy數組全解析
    甚至還可以接受range()返回的可迭代對象作為參數:>>> np.array(range(5))array([0, 1, 2, 3, 4])>>> np.array(range(10, 20, 2))array([10, 12, 14, 16, 18])通用方法:np.ones