一、Numpy基礎:數組創建


Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的表示形式,不過numpy為我們提供了更多的函數。如果接觸過matlab、scilab,那么numpy很好入手。

一、模塊引用

import numpy as np

二、數組的創建

這里先看一下多維度數組的格式,下例是一個三維數組,以樓房的方式理解最直觀。

[#數組一層
    [1, 3, 4, 6],#一層1單元
    [2, 5, 6, 7]#一層2單元
],
[#數組二層
    [1, 3, 4, 6],#二層1單元
    [2, 5, 6, 7]#二層2單元
]

注意,數組元素必須放入[]或()之間

2.1普通創建

一維數組創建

np.array([1,2,3,4])
>>>array([1, 2, 3, 4])

多維數組創建

c=np.array([
    [
        [
            [1,2],[3,4]#3維層(內部元素為思維)
        ],#2維層
        [
            [5,6],[7,8]
        ]
    ],#1維層
    [
        [
            [9,10],[11,12]
        ],
        [
            [13,14],[15,16]#3維層(內部元素為思維)
        ]#2維層
    ]#1維層
])
print(c)
>>>
[[[[ 1  2]
   [ 3  4]]
  [[ 5  6]
   [ 7  8]]]
 [[[ 9 10]
   [11 12]]
  [[13 14]
   [15 16]]]]​

2.1.1內置方法創建(arange創建)

arange的使用方法與python內置方法range相同,這里不再贅述,看程序

import numpy as np
a=np.arange(20)
b=np.arange(10,20)
c=np.arange(10,20,2)
d=np.arange(20,10,-1)
print("普通玩法:",a)
print("帶起始點的玩法:",b)
print("帶步長的玩法:",c)
print("倒着玩:",d)
>>>
普通玩法: [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
帶起始點的玩法: [10 11 12 13 14 15 16 17 18 19]
帶步長的玩法: [10 12 14 16 18]
倒着玩: [20 19 18 17 16 15 14 13 12 11]

2.1.2內置方法創建(random創建)

與random模塊不同,這個random是numpy內置的方法,用法上是相同的,同樣看程序

import numpy as np
a=np.random.random((2,2))#0~1的隨機數
b=np.random.randn(2,2)#符合正態分布的隨機數
c=np.random.randint(2,10,(2,2))#從2~10的隨機整數
print("0~1的隨機數:",a)
print("正態分布的隨機數:",b)
print("從2~10的隨機整數:",c)
>>>
0~1的隨機數: [[0.93614432 0.56444734] [0.29267612 0.38625066]] 正態分布的隨機數: [[-1.26606533 0.68466118] [ 0.34377799 0.1318619 ]] 從2~10的隨機整數: [[4 8] [9 6]]

numpy.random下所有創建方式如下表所示:

 

方法名稱 解析
rand(d0, d1, ..., dn) 隨機值。
randn(d0, d1, ..., dn) 返回一個樣本,具有標准正態分布。
randint(low[, high, size]) 返回隨機的整數,位於半開區間 [low, high)。
random_integers(low[, high, size]) 返回隨機的整數,位於閉區間 [low, high]。
random_sample([size]) 返回隨機的浮點數,在半開區間 [0.0, 1.0)。
choice(a[, size, replace, p]) 生成一個隨機樣本,從一個給定的一維數組。

 

 

 

 

 

 

 

 

 

2.1.3內置方法創建(等差等比創建)

np.linspace (起始值,終止值,元素總數):創建一維等差數組。
np.logspace(起始值,終止值,元素總數):創建一維等比數組。

import numpy as np
a=np.linspace(0,10,5)
b=np.logspace(0,2,5)
print("等差數組:",a)
print("等比數組:",b)
>>> 等差數組: [ 0. 2.5 5. 7.5 10. ] 等比數組: [ 1. 3.16227766 10. 31.6227766 100. ]

2.1.4內置方法創建(特殊構造)

np.zeros(shape, dtype=float, order='C'):創建一個全0數組,shape要以元組格式傳入。
np.ones(shape, dtype=None, order='C'):創建一個全1數組,shape要以元組格式傳入。
np.empty(shape, dtype=None, order='C'):創建一個擁有趨近0值的數組,shape要以元組格式傳入。
np.eye(N, M=None, k=0, dtype=float, order='C'):創建一個對角矩陣,N代表行,M代表列。其中有個參數k默認值為0,它代表偏移量,正1時向主對角線右上偏移1位,負1時向主對角線左下偏移1位。
np.full(shape, fill_value, dtype=None, order='C'):創建一個以fill_value進行填充的數組,fill_value為想要填充的值

 

import numpy as np
a=np.zeros((2,2))
b=np.ones((2,2))
c=np.empty((2,2))
d=np.eye(2, 2, 0)
e=np.full((2,2), 17)
print("全0數組:",a)
print("全1數組:",b)
print("趨近0數組:",c)
print("對角矩陣:",d)
print("全17數組:",e)
>>>
全0數組: [[0. 0.]
 [0. 0.]]
全1數組: [[1. 1.]
 [1. 1.]]
趨近0數組: [[9.90263869e+067 8.01304531e+262]
 [2.60799828e-310 0.00000000e+000]]
對角矩陣: [[1. 0.]
 [0. 1.]]
全17數組: [[17 17]
 [17 17]]

  

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM