您好,登錄后才能下訂單哦!
小編給大家分享一下python初始化數組的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
因為畫圖中x軸與y軸的數據通常為數組格式的數據,所以先總結一下如何初始化數組:
(1)list得到數組
# 通過array函數傳遞list對象 L = [1, 2, 3, 4, 5, 6] a = np.array(L)
# 若傳遞的是多層嵌套的list,將創建多維數組 b = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# 可以通過dtype參數在創建時指定元素類型 d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], dtype=np.float) # 如果更改元素類型,可以使用astype安全的轉換 f = d.astype(np.int)
(2)使用arange
# 和Python的range類似,arange同樣不包括終值;但arange可以生成浮點類型,而range只能是整數類型 # 1為開始值,10為終止值(不包括),0.5為步長 a = np.arange(1, 10, 0.5)
(3)使用ones、zeros、empty
# np.ones(shape, dtype),生成元素全為1(默認浮點型)的數組 # shape可以為一個整數得到一個一維數組,也可以為(整數1,整數2)的格式得到二維數組,同理可得多維數組 a = np.ones((3, 3), dtype=np.int32) print("a: \n", a) # np.zeros(shape, dtype),生成元素全為0(默認浮點型)的數組 # 用法與np.noes()一樣 b = np.zeros((3, 3), dtype=np.int32) print("b: \n", b) # np.empty(shape, dtype),生成元素為隨機數(默認浮點型)的數組 # 用法與np.ones()一樣 c = np.empty((3, 4), dtype=np.int32) print("c: \n", c) # np.ones()、np.zeros()、np.empty()都具有如下形式復制一個結構一樣的數組,但數據類型可選擇 np.ones_like(array, dtype=) np.zeros_like(array, dtype=) np.empty_like(array, dtype=)
(4)等差數列
# linspace函數通過指定起始值、終止值和元素個數來創建等差數組,元素之間是等步長的 # endpoint表示是否包括終止值,默認為True b = np.linspace(1, 10, 10,endpoint=True)
(5)等比數列
# 指定起始值、終止值、元素個數和基數來創建等比數列 # base表示基數,下式創建了一個1到4之間的有10個數的等比數列 d = np.logspace(1, 2, 10, endpoint=True, base=2) # 基數為10,下式創建了一個10到100之間的有10個數的等比數列 d = np.logspace(1, 2, 10, endpoint=True, base=10)
(6)隨機數
rand()
# 返回一個服從“0~1”均勻分布的隨機數,該隨機數在[0, 1)內,也可以返回一個由服從“0~1”均勻分布的隨機數組成的數組。 # np.random.rand(d0, d1, …, dn) # 返回一個隨機值,隨機值在[0, 1)內 In[15]: np.random.rand() Out[15]: 0.9027797355532956 # 返回一個3x3的數組,數組元素在[0, 1)內 In[16]:np.random.rand(3,3) Out[16]: array([[ 0.47507608, 0.64225621, 0.9926529 ], [ 0.95028412, 0.18413813, 0.91879723], [ 0.89995217, 0.42356103, 0.81312942]]) In[17]: np.random.rand(3,3,3) # 返回一個3x3x3的數組 Out[17]: array([[[ 0.30295904, 0.76346848, 0.33125168], [ 0.77845927, 0.75020602, 0.84670385], [ 0.2329741 , 0.65962263, 0.93239286]], [[ 0.24575304, 0.9019242 , 0.62390674], [ 0.43663215, 0.93187574, 0.75302239], [ 0.62658734, 0.01582182, 0.66478944]], [[ 0.22152418, 0.51664503, 0.41196781], [ 0.47723318, 0.19248885, 0.29699868], [ 0.11664651, 0.66718804, 0.39836448]]])
randn()
# 產生標準正態分布隨機數或隨機數組,用法與rand(d0, d1, …, dn)方法一樣 np.random.randn(d0, d1, …, dn)
randint()
# 可以生成隨機數,也可以生成多維隨機數組 # np.random.randint(low, high=None, size=None, dtype=) # [0,4)之間的隨機數 In[7]: np.random.randint(4) Out[7]: 1 # [0,4)之間的一維數組 In[8]: np.random.randint(4,size=4) Out[8]: array([2, 2, 2, 0]) # [4,10)之間的一維數組 In[9]: np.random.randint(4,10,size=6) Out[9]: array([7, 9, 7, 8, 6, 9]) # [4,10)之間的2x2數組 np.random.randint(4,10,size=(2,2),dtype='int32') Out[10]: array([[7, 4],[6, 9]])
uniform()
# 產生[low, high)之間的均勻分布隨機數或隨機數組,low默認為0.0,high默認為1.0 np.random.uniform(low=0.0, high=1.0, size=None)
normal()
# 產生均值為loc,方差為scale的服從正太分布的隨機數或隨機數組,loc默認為0,scale默認為1 np.random.normal(loc=0.0, scale=1.0, size=None)
看完了這篇文章,相信你對python初始化數組的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。