【Python-numpy】range()、np.arange()、np.linspace()、np.logspace()的使用和区别,list和array不同
【Python】range()、np.arange()、np.linspace()、np.logspace()的使用和區(qū)別_秋天-CSDN博客
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
下文鏈接:https://blog.csdn.net/duanlianvip/article/details/100102797
當(dāng)然也有一些本人個(gè)人的理解,作為補(bǔ)充。
初學(xué)tensorflow,nump 工具包,經(jīng)常遇到range()、np.arange()、np.linspace()、np.logspace()一系列的函數(shù),并且這幾個(gè)函數(shù)看起來(lái)還長(zhǎng)的差不多,雖然實(shí)現(xiàn)的功能看起來(lái)挺相似,但是他們之間還是有很多的區(qū)別。
為了解決上述困惑,做個(gè)筆記,把這4個(gè)函數(shù)放到一起對(duì)比,以方便溫故知新。
本期目錄導(dǎo)航
- 一、range ([start:int],stop:int,[step:int])
- 二、np.arange ([start=None], stop=None, [step=None], dtype=None)
- 三、np.linspace (start, stop, num=50, endpoint=True, retstep=False, dtype=None)
- 四、np.logspace (start, stop, num=50, endpoint=True, base=10.0, dtype=None)
- 五、list 與 numpy.ndarray區(qū)別
- 六、ndarray 和list 相互轉(zhuǎn)換
- 七、python中的 list和array 的不同之處
一、range ([start:int],stop:int,[step:int])
range(),從數(shù)值范圍創(chuàng)建數(shù)組,
從數(shù)值范圍[a,b)創(chuàng)建數(shù)組,不加嚴(yán)謹(jǐn)?shù)貙?xiě)作[start,stop),即左閉右開(kāi)的區(qū)間
程序驗(yàn)證:
二、np.arange ([start=None], stop=None, [step=None], dtype=None)
補(bǔ)充: numpy 包中的使用 arange 函數(shù),從數(shù)值范圍創(chuàng)建數(shù)組,并返回 ndarray 對(duì)象,函數(shù)格式如下:
numpy.arange(start, stop, step, dtype)從數(shù)值范圍[a,b)創(chuàng)建數(shù)組,不加嚴(yán)謹(jǐn)?shù)貙?xiě)作[start,stop),即左閉右開(kāi)的區(qū)間
參數(shù)含義:
- start:數(shù)值型,可選填。包含此值。默認(rèn)為0。
- stop:數(shù)值型,必填。不包含此值。除非step的值不是整數(shù),浮點(diǎn)舍入會(huì)影響“out”的長(zhǎng)度。
- step:數(shù)值型,可選填。默認(rèn)為1,如果步長(zhǎng)有指定,則start必須給出來(lái)。
- dtype:數(shù)據(jù)類(lèi)型。輸出的array數(shù)據(jù)類(lèi)型。如果未指定dtype,則輸出的array類(lèi)型由其它的輸入?yún)?shù)決定。
- start、stop、step若任一個(gè)為浮點(diǎn)型,那么都會(huì)生成一個(gè)浮點(diǎn)型序列。
程序驗(yàn)證:
三、np.linspace (start, stop, num=50, endpoint=True, retstep=False, dtype=None)
numpy.linspace 函數(shù)用于創(chuàng)建一個(gè)一維數(shù)組,數(shù)組是一個(gè)等差數(shù)列構(gòu)成的,格式如下:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)- 指定在 start到stop的均分?jǐn)?shù)值(等差數(shù)列)。
- start:不可缺省。
- stop:有時(shí)包含,有時(shí)不包含,根據(jù)endpoint來(lái)選擇,默認(rèn)包含。
- num:指定均分的數(shù)量,默認(rèn)為50。
- endpoint:布爾值,可選,默認(rèn)為T(mén)rue,默認(rèn)包含。包含stop,就True,不包含就False。
- retstep:布爾值,可選,默認(rèn)為False。如果為T(mén)rue,返回值和步長(zhǎng)
- dtype:輸出數(shù)據(jù)類(lèi)型,可選。如果不指定,則根據(jù)前面參數(shù)的數(shù)據(jù)類(lèi)型
程序驗(yàn)證:
四、np.logspace (start, stop, num=50, endpoint=True, base=10.0, dtype=None)
numpy.logspace 函數(shù)用于創(chuàng)建一個(gè)等比數(shù)列。格式如下:
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)參數(shù):
-
start:float類(lèi)型,基底base的start次冪作為左邊界
-
stop:float類(lèi)型,基底base的stop次冪作為右邊界
-
num:指定等比數(shù)值的數(shù)量,默認(rèn)為50
-
endpoint:布爾值,可選,默認(rèn)為T(mén)rue。包含stop就True,不包含就False
-
base:float類(lèi)型,選填,基底
-
dtype:輸出數(shù)據(jù)類(lèi)型。
返回值:ndarray類(lèi)型
logspace()函數(shù),等價(jià)于如下代碼:
程序驗(yàn)證:
五、list 與 numpy.ndarray區(qū)別
上述四個(gè)函數(shù),range()返回值為list類(lèi)型,其余為ndarray類(lèi)型,看著差不多,這兩種類(lèi)型有什么區(qū)別呢?
python中的二維數(shù)組,主要有 list(列表) 和 numpy.ndarray(多維數(shù)組) 兩種, 兩種的區(qū)別主要體現(xiàn)在numpy.ndarray 支持更多的索引方式,下面通過(guò)代碼來(lái)看一下兩種數(shù)據(jù)類(lèi)型索引方式的區(qū)別:
對(duì)a和b的元素進(jìn)行訪問(wèn):
兩者區(qū)別:
報(bào)錯(cuò):list indices must be integers or slices,not tuple
翻譯:列表索引必須是整數(shù)或片,不是元組
可以看到numpy.ndarray 比list的訪問(wèn)方式更靈活.
六、ndarray 和list 相互轉(zhuǎn)換
- 在處理數(shù)據(jù)時(shí),可以通過(guò)np.array() 方便的將列表(list)轉(zhuǎn)化為numpy.ndarray,
- 當(dāng)然處理完后還可以通過(guò)tolist() 將ndarray再轉(zhuǎn)回列表(list),從而方便刪除或添加元素。
演示:
參考:
- http://www.mamicode.com/info-detail-2449535.html
- https://blog.csdn.net/ui_shero/article/details/78881067
- https://www.jianshu.com/p/f8e6a0a6399f
七、python中的 list和array 的不同之處
python 中 array 和 list 的區(qū)別 - https://zhuanlan.zhihu.com/p/261636002?utm_source=wechat_session
- List: 列表
python 中的 list 是 python 的內(nèi)置數(shù)據(jù)類(lèi)型,list 中的數(shù)據(jù)類(lèi)型不必相同,
在 list 中保存的是數(shù)據(jù)的存放的地址,即指針,并非數(shù)據(jù)。
- array:數(shù)組
array() 是 numpy 包中的一個(gè)函數(shù),array 里的元素都是同一類(lèi)型,數(shù)據(jù)類(lèi)型要相同。
- ndarray:多維數(shù)組
是一個(gè)多維的數(shù)組對(duì)象,具有矢量算術(shù)運(yùn)算能力和復(fù)雜的廣播能力,并具有執(zhí)行速度快和節(jié)省空間的特點(diǎn)。
ndarray 的一個(gè)特點(diǎn)是同構(gòu):即其中所有元素的類(lèi)型必須相同。
總結(jié)
以上是生活随笔為你收集整理的【Python-numpy】range()、np.arange()、np.linspace()、np.logspace()的使用和区别,list和array不同的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 什么是股票k线 技术分析者最常用的分析工
- 下一篇: 【python-numpy 】中的随机打