99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時(shí)代numpy學(xué)的還不錯(cuò)?來試試這20題!
numpy學(xué)的還不錯(cuò)?來試試這20題!
2020-07-20
收藏

numpy是一款功能強(qiáng)大的python庫,通常被用來存儲和處理大型矩陣。numpy可以支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫 。相信大家在數(shù)據(jù)分析過程中一定少不了numpy的幫助,為了幫助大家鞏固numpy的學(xué)習(xí)和實(shí)用成果,一起來跟小編做下邊的20道題吧.

以下內(nèi)容來源: 早起Python

作者:劉早起

大家好,又到了NumPy進(jìn)階修煉專題。

NumPy大家應(yīng)該不陌生了,看了太多的原理講解之后,用刷題來學(xué)習(xí)是最有效的方法,本文將帶來20個(gè)NumPy經(jīng)典問題,附贈(zèng)20段實(shí)用代碼,拿走就用,建議打開Jupyter Notebook邊敲邊看!

01數(shù)據(jù)查找

問:如何獲得兩個(gè)數(shù)組之間的相同元素

輸入

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數(shù)據(jù)修改

問:如何從一個(gè)數(shù)組中刪除另一個(gè)數(shù)組存在的元素

輸入

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數(shù)據(jù)修改

問:如何修改一個(gè)數(shù)組為只讀模式

輸入:

arr1 = np.random.randint(1,10,10)

答案:

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

04數(shù)據(jù)轉(zhuǎn)換

問:如何將list轉(zhuǎn)為numpy數(shù)組

輸入:

a = [1,2,3,4,5]

答案:

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

05數(shù)據(jù)轉(zhuǎn)換

問:如何將pd.DataFrame轉(zhuǎn)為numpy數(shù)組

輸入:

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

答案:

df.values

06數(shù)據(jù)分析

問:如何使用numpy進(jìn)行描述性統(tǒng)計(jì)分析

輸入:

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的平均數(shù)為:%s" %np.mean(arr1))
print("arr1的中位數(shù)為:%s" %np.median(arr1))
print("arr1的方差為:%s" %np.var(arr1))
print("arr1的標(biāo)準(zhǔn)差為:%s" %np.std(arr1))
print("arr1,arr的相關(guān)性矩陣為:%s" %np.cov(arr1,arr2))
print("arr1,arr的協(xié)方差矩陣為:%s" %np.corrcoef(arr1,arr2))

07數(shù)據(jù)抽樣

問:如何使用numpy進(jìn)行概率抽樣

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數(shù)據(jù)創(chuàng)建

問:如何為數(shù)據(jù)創(chuàng)建副本

輸入:

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

答案:

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

09數(shù)據(jù)切片

問:如何對數(shù)組進(jìn)行切片

輸入:

arr = np.arange(10)

備注:從索引2開始到索引8停止,間隔為2

答案:

arr = np.arange(10)
a = slice(2,8,2)
arr[a] #等價(jià)于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數(shù)據(jù)修改

問:如何對數(shù)據(jù)向上/下取整

輸入:

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格式修改

問:如何取消默認(rèn)科學(xué)計(jì)數(shù)顯示數(shù)據(jù)

答案:

np.set_printoptions(suppress=True)

13數(shù)據(jù)修改

問:如何使用NumPy對二維數(shù)組逆序

輸入:

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數(shù)據(jù)查找

問:如何使用NumPy根據(jù)位置查找元素

輸入:

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

備注:在arr2中根據(jù)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數(shù)據(jù)計(jì)算

問:如何使用numpy求余數(shù)

輸入:

a = 10
b = 3

答案:

np.mod(a,b)

16數(shù)據(jù)計(jì)算

問:如何使用NumPy進(jìn)行矩陣SVD分解

輸入:

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

答案:

np.linalg.svd(A)

17數(shù)據(jù)篩選

問:如何使用NumPy多條件篩選數(shù)據(jù)

輸入:

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

答案:

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

18數(shù)據(jù)修改

問:如何使用NumPy對數(shù)組分類

備注:將大于等于7,或小于3的元素標(biāo)記為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數(shù)據(jù)修改

問:如何使用NumPy壓縮矩陣

備注:從數(shù)組的形狀中刪除單維度條目,即把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數(shù)據(jù)計(jì)算

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

以上就是我總結(jié)的NumPy經(jīng)典20題,你都會(huì)嗎?并且每題我都只給出了一種解法,而事實(shí)上每題都有多種解法,所以你應(yīng)該思考是否有更好的思路!

走到這里,NumPy80題就結(jié)束了,完整版80題將會(huì)在近期發(fā)布,盡情期待!

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }