# 1、安裝包# pip install numpy #原生python安裝# conda install numpy #Anaconda的安裝
# 使用Numpyimport numpy as np a = np.arange(15) #生成0-14的一維數組display(a)
display( )和print( )都是打印,在大多數編程軟件上都使用print,jupyter notebook中我們可以使用display來打印,打印更美觀.
基礎屬性
NumPy的數組類被調用ndarray
。ndarray
對象更重要的屬性有:
ndarray.ndim - 數組的軸(維度)的個數。
ndarray.shape - 數組的維度。這是一個整數的元組,表示每個維度中數組的大小。對于有 n 行和 m 列的矩陣,shape 將是 (n,m)。因此,shape 元組的長度就是rank或維度的個數 ndim。
ndarray.size - 數組元素的總數。等于 shape 的元素的乘積。
ndarray.dtype - 描述數組中元素類型的對象。例如numpy.int32、numpy.int16和numpy.float64。
ndarray.itemsize - 數組中每個元素數據類型的字節大小。例如,元素為 float64 類型的數組的 itemsize 為8(=64/8)。等于 ndarray.dtype.itemsize 。
ndarray.data - 該緩沖區包含數組的實際元素。
import numpy as np #生成一個4行5列的2維數組a = np.arange(20).reshape(4, 5)display(a)
print(a.ndim) #輸出幾維數組print(a.shape) #輸出有 n 行和 m 列的矩陣print(a.size) #輸出有n個元素print(a.dtype) #輸出元素的數據類型print(a.dtype.name) #輸出元素的數據類型print(type(a)) #輸出a是什么類型print(a.itemsize) # 輸出元素類型字節大小,int型=4print(a.data) #該緩沖區包含數組的實際元素,基本不用
數組創建
import numpy as np# 創建一維數組a = np.array([1,3,5,7]) display(a)b = np.arange(1,8,2)display(b)c = np.array([1,3,5,7], dtype=complex)display(c)
import numpy as np# 創建2維數組a = np.array([[1,2,3,4],[5,6,7,8]])display(a)b = np.array([(1,2,3,4),(5,6,7,8)])display(b)c = np.arange(1,9).reshape(2,4)display(c)
函數zeros創建一個由0組成的數組,函數 ones創建一個完整的數組,函數empty 創建一個數組,其初始內容是隨機的,取決于內存的狀態。默認情況下,創建的數組的dtype是 float64 類型的。
a= np.zeros( (3,4) )b= np.ones( (2,3,4), dtype=np.int16 ) c =np.empty( (2,3) )display(a,b,c)
import numpy as npfrom numpy import pi# 等差數組a = np.linspace( 0, 2, 9 )print(a,'\n')#數學函數pi=3.14.....b = np.linspace( 0, 2*pi, 10 )print(b,'\n')#數學函數sin()c = np.sin(b)print(c)
數組運算
乘積運算符*在NumPy數組中按元素進行運算。矩陣乘積可以使用@運算符(在python> = 3.5中)或dot函數或方法執行
元素乘法/矩陣乘法
import numpy as np# 創建一維數組a = np.array([1,3,5,7]) display(a)b = np.arange(1,8,2)display(b)print(a*b,'\n')print(a&b,'\n')print(a.dot(b))
import numpy as np# 創建2維數組a = np.array([[0,2,3,4],[1,3,5,7]])display(a)b = np.array([(1,2,3,4),(5,6,7,8)])print(b,'\n')# 對應元素相乘print(a*b,'\n')# 矩陣相乘print(a&b)
加減乘除求余
import numpy as np# 創建2維數組a = np.array([[0,2,3,4],[1,3,5,7]])print(a,'\n')b = np.array([(1,2,3,4),(5,6,7,8)])print(b,'\n')print(sum(a),'\n')print(a + b,'\n')print(a - b,'\n')print(a / b,'\n')print(a?%?b,'\n')?#求余print(a * b,'\n')print(a & b) #矩陣乘法
整體聚合
import numpy as npa = np.random.random((2,3))print(a)print(a.sum()) #求和print(a.max()) #最大print(a.min()) #最小print(a.size) #數量print(a.mean())#均值
指定數組方向計算
通過指定axis 參數[1/0],可以沿數組的指定軸應用操作
import numpy as npa = np.array([(1,2,3,4),(2,4,6,8),(1,3,5,7),(4,5,6,7)])display(a)display(a.sum(axis=0))display(a.mean(axis=0))display(a.max(axis=0))display(a.min(axis=0))display((a*0+1).sum(axis=0))display(a.shape) #有n行,m列
import numpy as npa = np.array([(1,2,3),(2,4,6),(1,3,5),(4,5,6)])display(a)display(a.sum(axis=1))display(a.mean(axis=1))display(a.max(axis=1))display(a.min(axis=1))display((a*0+1).sum(axis=1))display(a.shape) #有n行,m列
更多計算函數參看官方文檔: https://www.numpy.org.cn/user/quickstart.html
關注公眾號,下一文,我們一起學習numpy的索引/切片/迭代/形狀操縱等知識