十一、數組的創(chuàng)建
1、通過列表創(chuàng)建數組

2、numpy中定義的原生數組創(chuàng)建函數
(1)numpy.zeros(shape, dtype=float, order='C')
創(chuàng)建指定大小的數組,數組元素以 0 來填充。參數說明:
參數 描述
shape 數組形狀(幾行幾列),shape后會有參數(a,b,c)a是指創(chuàng)建兩個三維數組,分別為b行c列。(如果有a就是三維,沒有a就是二維,只出現兩個元素就代表幾行幾列)
dtype 數據類型,可選,指定數組元素的數據類型(dtype)如,整數,復數,浮點數
order 用于選擇行(C)優(yōu)先或者列(F)優(yōu)先;

(2)numpy.empty(shape, dtype=, order='')
用來創(chuàng)建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組
參數介紹同(1)
(3)numpy.ones(shape, dtype='', order='')
創(chuàng)建指定形狀的數組,數組元素以 1 來填充。參數介紹同(1)


(4)numpy.arange(start, stop, step, dtype)
創(chuàng)建等差數組
參數 描述
start 起始值,默認為0
stop 終止值,不包括該值
step 步長,默認為1
dtype 返回ndarray的數據類型,如果沒有提供,則會使用輸入數據的類型。

(5)numpy.eye(N, M, k, dtype, order)
創(chuàng)建單位矩陣。其中:
參數 描述
N int,輸出數組的行數
M int, optional,輸出數組的列數,如果為None,默認等與N;
k int, optional,0表示主對角線,正數表示上對角線,負數表示下對角線;
dtype data-type, optional,重新指定數組元素的數據類型(dtype);
order {‘C’, ‘F’}, optional,行優(yōu)先或者列優(yōu)先;
numpy.identity(n, dtype=<class 'float'>)
n:int,輸出數組的行數;
dtype:data-type, optional,指定數組元素的數據類型(dtype)
函數返回一個對角線元素為1的n×n數組
(6)創(chuàng)建二維隨機數組


(7)一些其他的函數
①numpy.zeros_like/numpy.empty_like/numpy.ones_like(a,dtype,order, subok, shape)其中:
a:array_like,表示創(chuàng)建的新數組定義了和這個對象相同的形狀和數據類型;
dtype:data-type, optional,重新指定數組元素的數據類型(dtype);
order:{‘C’, ‘F’, ‘K’}, optional,存儲順序,'C’表示C-order,'F’表示F-order,'K’表示遵循a的順序;
subok:bool, optional,(布爾類型判斷)如果為True,則新創(chuàng)建的數組將使用a的子類類型,否則它將是基類數組;
shape:int or sequence of ints, optional,重新指定結果的形狀。
②numpy.full_like(a, fill_value, dtype, order, subok, shape)
其中fill_value:將被賦值給新數組的元素值;其他①中的其他元素的功能
3、小結
要分辨是幾維數組最簡單的就是看輸出的中括號有幾層,當然也可以使用print(“數組形狀:”,a1.shape)和print(“數組的維度數目”,a1.ndim)來看數組的維度。
但是如果要求創(chuàng)建數組,如何創(chuàng)建出幾維數組
(1)就是通過列表創(chuàng)建數組,這是最簡單的,要幾維就創(chuàng)建幾個,也是就是加幾個中括號。
(2)通過制定函數創(chuàng)建數組,此時數組的形狀可以通過一些語句來實現,比如shape,reshape,size等
(3)注意創(chuàng)建數組時用到的函數中的參數:shape,dtype,order
十二、numpy數組運算
1、數組的一些簡單運算

這里有一點要注意,每引入一個新的數組,變量的符號需要更換,否則就會報錯。
對于np.sum來說就是簡單把數組中的元素相加不論是幾維的數組。
其中的np.tile()函數
np.tile(a,(x,y)):表示將數組a在行上重復x次, 在列上重復y次,在第三維度上重復
2、一維數組的簡單運算

這里需要注意的點是,x與y需要是同種類型,即生成數組的方式必須一致,并且其中的元素必須相同,否則無法進行運算。
以此類推,二維數組的簡單運算即相應位置上進行±*/同一維數組。
3、數組生成矩陣的運算
函數 描述
dot 兩個數組的點積,即元素對應相乘。
vdot 兩個向量的點積
inner 兩個數組的內積
matmul 兩個數組的矩陣積
determinant 數組的行列式
solve 求解線性矩陣方程
inv 計算矩陣的乘法逆矩陣

4、廣播
廣播(Broadcast)是 numpy 對不同形狀(shape)的數組進行數值計算的方式, 對數組的算術運算通常在相應的元素上進行。當運算中的 2 個數組的形狀不同時,numpy 將自動觸發(fā)廣播機制。
但是廣播的規(guī)則是:對兩個數組,分別比較他們的每一個維度需要滿足,數組擁有相同形狀、當前維度的值相等、當前維度的值有一個是 1。如果條件不滿足會出現異常。
以具體的例子說明一下:

在上圖中,C輸出的數組是,兩行四列,此時如果要滿足廣播的規(guī)則,另一個數組必須是一維的,即1行4列,而np.tile(D,(2,1))的意思就是將D數組擴充為兩行四列,而第二行的元素與第一行是一樣的,從而與數組C進行相加,因此可直接簡寫為C+ D.