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