
numpy是一款功能強大的python庫,通常被用來存儲和處理大型矩陣。numpy可以支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫 。相信大家在數據分析過程中一定少不了numpy的幫助,為了幫助大家鞏固numpy的學習和實用成果,一起來跟小編做下邊的20道題吧.
以下內容來源: 早起Python
作者:劉早起
大家好,又到了NumPy進階修煉專題。
NumPy大家應該不陌生了,看了太多的原理講解之后,用刷題來學習是最有效的方法,本文將帶來20個NumPy經典問題,附贈20段實用代碼,拿走就用,建議打開Jupyter Notebook邊敲邊看!
01數據查找
問:如何獲得兩個數組之間的相同元素
輸入:
import numpy as np import pandas as pd import warnings warnings.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)
02數據修改
問:如何從一個數組中刪除另一個數組存在的元素
輸入:
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)
03數據修改
問:如何修改一個數組為只讀模式
輸入:
arr1 = np.random.randint(1,10,10)
答案:
arr1 = np.random.randint(1,10,10) arr1.flags.writeable = False
04數據轉換
問:如何將list轉為numpy數組
輸入:
a = [1,2,3,4,5]
答案:
a = [1,2,3,4,5] np.array(a)
05數據轉換
輸入:
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
答案:
df.values
06數據分析
輸入:
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))
07數據抽樣
問:如何使用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])
答案:
08數據創建
問:如何為數據創建副本
輸入:
arr = np.array([1,2,3,4,5])
答案:
#對副本數據進行修改,不會影響到原始數據 arr = np.array([1,2,3,4,5]) arr1 = arr.copy()
09數據切片
問:如何對數組進行切片
輸入:
arr = np.arange(10)
備注:從索引2開始到索引8停止,間隔為2
答案:
arr = np.arange(10) a = slice(2,8,2) arr[a] #等價于arr[2:8:2]
10字符串操作
問:如何使用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))
11數據修改
問:如何對數據向上/下取整
輸入:
arr = np.random.uniform(0,10,10)
答案:
arr = np.random.uniform(0,10,10) print(arr) ###向上取整 print(np.ceil(arr)) ###向下取整 print(np.floor(arr) )
12格式修改
問:如何取消默認科學計數顯示數據
答案:
np.set_printoptions(suppress=True)
13數據修改
問:如何使用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, :])
14數據查找
問:如何使用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))
15數據計算
問:如何使用numpy求余數
輸入:
a = 10 b = 3
答案:
np.mod(a,b)
16數據計算
問:如何使用NumPy進行矩陣SVD分解
輸入:
A = np.random.randint(1,10,[3,3])
答案:
np.linalg.svd(A)
17數據篩選
問:如何使用NumPy多條件篩選數據
輸入:
arr = np.random.randint(1,20,10)
答案:
arr = np.random.randint(1,20,10) print(arr[(arr>1)&(arr<7)&(arr%2==0)])
18數據修改
問:如何使用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]))
19數據修改
問:如何使用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))
20數據計算
問:如何使用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題,你都會嗎?并且每題我都只給出了一種解法,而事實上每題都有多種解法,所以你應該思考是否有更好的思路!
走到這里,NumPy80題就結束了,完整版80題將會在近期發布,盡情期待!
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25