欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python機(jī)器學(xué)習(xí)三大件之一numpy

 更新時(shí)間:2021年05月10日 14:47:02   作者:深海漫步鵝  
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)三大件之一numpy,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助喲.需要的朋友可以參考下

一、前言

機(jī)器學(xué)習(xí)三大件:numpy, pandas, matplotlib

Numpy(Numerical Python)是一個(gè)開(kāi)源的Python科學(xué)計(jì)算庫(kù),用于快速處理任意維度的數(shù)組。

Numpy支持常見(jiàn)的數(shù)組和矩陣操作。對(duì)于同樣的數(shù)值計(jì)算任務(wù),使用Numpy比直接使用Python要簡(jiǎn)潔的多。

Numpy使用ndarray對(duì)象來(lái)處理多維數(shù)組,該對(duì)象是一個(gè)快速而靈活的大數(shù)據(jù)容器。

NumPy提供了一個(gè)N維數(shù)組類型ndarray

import numpy as np
score = np.array(
[[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])

score

array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])

Numpy專門(mén)針對(duì)ndarray的操作和運(yùn)算進(jìn)行了設(shè)計(jì),所以數(shù)組的存儲(chǔ)效率和輸入輸出性能遠(yuǎn)優(yōu)于Python中的嵌套列表,數(shù)組越大,Numpy的優(yōu)勢(shì)就越明顯。

在這里插入圖片描述

從圖中我們可以看出ndarray在存儲(chǔ)數(shù)據(jù)的時(shí)候,數(shù)據(jù)與數(shù)據(jù)的地址都是連續(xù)的,這樣就給使得批量操作數(shù)組元素時(shí)速度更快。
list – 分離式存儲(chǔ),存儲(chǔ)內(nèi)容多樣化
ndarray – 一體式存儲(chǔ),存儲(chǔ)類型必須一樣
ndarray支持并行化運(yùn)算(向量化運(yùn)算)
ndarray底層是用C語(yǔ)言寫(xiě)的,效率更高,釋放了GIL

二、基本操作

# 生成0和1的數(shù)組
ones = np.ones([4,8])
ones

array([[1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1.]])

# 生成等間隔的數(shù)組
np.linspace(0, 100, 11)

array([ 0., 10., 20., 30., 40., 50., 60., 70., 80., 90.,
100.])

#創(chuàng)建等差數(shù)組 — 指定步長(zhǎng)
np.arange(10, 50, 2)

array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48])

三、正太分布

  • rand函數(shù)根據(jù)給定維度生成[0,1)之間的數(shù)據(jù),包含0,不包含1
np.random.rand(4,2)

array([[ 0.02173903, 0.44376568],
[ 0.25309942, 0.85259262],
[ 0.56465709, 0.95135013],
[ 0.14145746, 0.55389458]])

  • randn函數(shù)返回一個(gè)或一組樣本,具有標(biāo)準(zhǔn)正態(tài)分布
np.random.randn(2,4)

array([[ 0.27795239, -2.57882503, 0.3817649 , 1.42367345],
[-1.16724625, -0.22408299, 0.63006614, -0.41714538]])

  • randint返回隨機(jī)整數(shù),范圍區(qū)間為[low,high),包含low,不包含high
np.random.randint(1,5) # 返回1個(gè)[1,5)時(shí)間的隨機(jī)整數(shù)

4

  • 生成均勻分布的隨機(jī)數(shù),舉例1:生成均值為1.75,標(biāo)準(zhǔn)差為1的正態(tài)分布數(shù)據(jù),100000000個(gè)
x1 = np.random.normal(1.75, 1, 100000000)

array([2.90646763, 1.46737886, 2.21799024, …, 1.56047411, 1.87969135, 0.9028096 ])

  • 均勻分布
# 生成均勻分布的隨機(jī)數(shù)
x2 = np.random.uniform(-1, 1, 100000000)

array([ 0.22411206, 0.31414671, 0.85655613, …, -0.92972446, 0.95985223, 0.23197723])

四、數(shù)組的索引、切片

# 三維
a1 = np.array([ [[1,2,3],[4,5,6]], [[12,3,34],[5,6,7]]])
# 返回結(jié)果
array([[[ 1,  2,  3],
        [ 4,  5,  6]],

       [[12,  3, 34],
        [ 5,  6,  7]]])
# 索引、切片
a1[0, 0, 1]   # 輸出: 2

五、形狀修改

stock_change.reshape([5, 4])  #5*4
stock_change.reshape([-1,10])  #2*10,-1: 表示通過(guò)待計(jì)算

六、轉(zhuǎn)置

stock_change.T.shape

七、類型轉(zhuǎn)換

arr = np.array([[[1, 2, 3], [4, 5, 6]], [[12, 3, 34], [5, 6, 7]]])
arr.tostring()

八、數(shù)組的去重

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

>>> np.unique(temp)
array([1, 2, 3, 4, 5, 6])

邏輯運(yùn)算
直接進(jìn)行大于,小于的判斷:test_score > 60
合適之后,可以直接進(jìn)行賦值:test_score[test_score > 60] = 1
通用判斷函數(shù)
np.all() np.all(score[0:2, :] > 60)
np.any() np.any(score[0:2, :] > 80)
統(tǒng)計(jì)運(yùn)算
np.max()
np.min()
np.median()
np.mean()
np.std()
np.var()
np.argmax(axis=) — 最大元素對(duì)應(yīng)的下標(biāo)
np.argmin(axis=) — 最小元素對(duì)應(yīng)的下標(biāo)

九、廣播機(jī)制

  • 數(shù)組運(yùn)算,滿足廣播機(jī)制,就OK

1.維度相等

2.shape(其中對(duì)應(yīng)的地方為1,也是可以的)

arr1 = np.array([[0],[1],[2],[3]])
arr1.shape
# (4, 1)

arr2 = np.array([1,2,3])
arr2.shape
# (3,)

arr1+arr2
# 結(jié)果是:
array([[1, 2, 3],
       [2, 3, 4],
       [3, 4, 5],
       [4, 5, 6]])

到此這篇關(guān)于Python機(jī)器學(xué)習(xí)三大件之一numpy的文章就介紹到這了,更多相關(guān)python numpy內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python數(shù)據(jù)結(jié)構(gòu)之單鏈表詳解

    Python數(shù)據(jù)結(jié)構(gòu)之單鏈表詳解

    這篇文章主要為大家詳細(xì)介紹了Python數(shù)據(jù)結(jié)構(gòu)之單鏈表的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • python 追蹤except信息方式

    python 追蹤except信息方式

    這篇文章主要介紹了python 追蹤except信息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • numpy.bincount用于復(fù)數(shù)權(quán)重的方法

    numpy.bincount用于復(fù)數(shù)權(quán)重的方法

    numpy.bincount是NumPy庫(kù)中的一個(gè)函數(shù),它用于計(jì)算整數(shù)數(shù)組中每個(gè)值的出現(xiàn)次數(shù),numpy.bincount函數(shù)在統(tǒng)計(jì)整數(shù)數(shù)組中每個(gè)值的出現(xiàn)次數(shù)或權(quán)重和時(shí)非常有用,本文給大家介紹numpy.bincount如何用于復(fù)數(shù)權(quán)重,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • pycharm激活碼2020最新分享適用pycharm2020最新版親測(cè)可用

    pycharm激活碼2020最新分享適用pycharm2020最新版親測(cè)可用

    這篇文章主要介紹了pycharm激活碼2020最新分享適用pycharm2020最新版親測(cè)可用,同時(shí)也支持Intellij IDEA激活碼,PHPStorm激活碼大家可以放心使用需要的朋友可以參考下
    2020-11-11
  • R vs. Python 數(shù)據(jù)分析中誰(shuí)與爭(zhēng)鋒?

    R vs. Python 數(shù)據(jù)分析中誰(shuí)與爭(zhēng)鋒?

    R和Python兩者誰(shuí)更適合數(shù)據(jù)分析領(lǐng)域?在某些特定情況下誰(shuí)會(huì)更有優(yōu)勢(shì)?還是一個(gè)天生在各方面都比另一個(gè)更好?
    2017-10-10
  • python+selenium開(kāi)發(fā)環(huán)境搭建圖文教程

    python+selenium開(kāi)發(fā)環(huán)境搭建圖文教程

    這篇文章主要為大家詳細(xì)介紹了python+selenium開(kāi)發(fā)環(huán)境搭建的圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • python的繼承詳解

    python的繼承詳解

    這篇文章主要介紹了Python中繼承的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2021-10-10
  • Python使用openpyxl批量處理數(shù)據(jù)

    Python使用openpyxl批量處理數(shù)據(jù)

    openpyxl 是一個(gè)用于處理 xlsx 格式Excel表格文件的第三方python庫(kù),其支持Excel表格絕大多數(shù)基本操作。本文給大家介紹Python使用openpyxl批量處理數(shù)據(jù)的操作方法,感興趣的朋友一起看看吧
    2021-06-06
  • pandas去除重復(fù)列的實(shí)現(xiàn)方法

    pandas去除重復(fù)列的實(shí)現(xiàn)方法

    這篇文章主要介紹了pandas去除重復(fù)列的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Python中號(hào)稱神仙的六個(gè)內(nèi)置函數(shù)詳解

    Python中號(hào)稱神仙的六個(gè)內(nèi)置函數(shù)詳解

    這篇文章主要介紹了Python中號(hào)稱神仙的六個(gè)內(nèi)置函數(shù),今天分享的這6個(gè)內(nèi)置函數(shù),在使用?Python?進(jìn)行數(shù)據(jù)分析或者其他復(fù)雜的自動(dòng)化任務(wù)時(shí)非常方便,需要的朋友可以參考下
    2022-05-05

最新評(píng)論