熱線電話:13121318867

登錄
首頁大數據時代numpy學的還不錯?來試試這20題!
numpy學的還不錯?來試試這20題!
2020-07-20
收藏

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數據轉換

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

輸入:

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

答案:

df.values

06數據分析

問:如何使用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))

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

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢