1. 程式人生 > 其它 >jquery多維物件計算個數_python 科學計算的基石 numpy(一)

jquery多維物件計算個數_python 科學計算的基石 numpy(一)

技術標籤:jquery多維物件計算個數

458ae99c1c8715ffa09e94c6deec05b5.png

1. 簡單介紹

行業常說的“資料分析三劍客”或者“機器學習三劍客”,指的就是 numpy(計算), matplotlib(視覺化), pandas(分析) 這三個 python 庫。如果拿自然科學學科類比,matplotlib 相當於“物理學”,pandas 相當於“化學”,而 numpy 就是“數學”, 是其他學科賴以立足的“基石”。

numpy 之所以是基石,是因為 numpy 為 matplotlib 和 pandas 等提供了底層資料結構和計算支援。而 numpy 核心資料結構就是多維陣列(ndarray: N-dimensional array)。

2. 準備工作

這個小節過渡有點突兀,但是為了下一步順利執行程式碼,不得不強行插播這條“準備工作”。

2.1 安裝

2.1.1 檢查是否安裝

conda list | grep numpy複製程式碼

或:

pip freeze | grep numpy複製程式碼

2.1.2 安裝

已安裝,請跳過。

conda install numpy複製程式碼

或:

pip install numpy複製程式碼

2.1.3 更新

已安裝,可選擇更新。

conda update numpy複製程式碼

或:

pip install --upgrade numpy複製程式碼

2.2 匯入

np 為行業慣例縮寫。

import numpy as np複製程式碼

3. 多維陣列(numpy.ndarray: N-dimensional array)

如果熟悉 matlab (矩陣實驗室),我們知道 matlab 科學計算建立在“矩陣”之上。而,numpy 的多維陣列有異曲同工之妙。

3.1 建立

3.1.1 使用 np.array() 建立

以下通過一個二維列表建立一個 numpy 多維陣列(numpy.ndarray) 。在 numpy 中,維度這個概念也叫秩 ,英文叫Axes ,因此,這裡建立的二維陣列,我們也可以稱之為秩為 2 的多維陣列,它包含了 2 個軸(Axis)。陣列的 shape 屬性是一個元組,對應多維陣列每個 軸(Axis) 長度;size屬性是多維陣列所有元素個數,它等於 shape 所有元素的乘積。

說起來很複雜,但是實際很簡單,通過下面的列印輸出,我們可以很直觀的理解,各個屬性之間的關係。

na = np.array([[1, 2, 3], [4, 5, 6]])print( """ 物件型別:{} 形狀:{} 維度(秩):{} 元素個數:{} 元素型別:{} """ .format(type(na), na.shape, na.ndim, na.size, na.dtype))na複製程式碼 物件型別: 形狀:(2, 3) 維度(秩):2 元素個數:6 元素型別:int64 array([[1, 2, 3], [4, 5, 6]])複製程式碼

3.1.2 使用 np.zeros() 建立

如果不是事先就知道各元素的數值,使用 np.array() 的方式,難免有些繁瑣,相比之下,只是先初始化一個全為 0 的多維陣列,np.zeros() 無疑是更適合的選擇。使用 np.zeros() 只需提供 shape 引數,也是第一個位置引數,就可以建立指定 shape 的多維陣列,並將陣列所有元素填充為 0 。

na = np.zeros((2, 3))print("dtype: