Python--Numpy.s(numpy的創建,通用函數,索引和切片,隨機數,數據存讀)


Numpy

 數組的運算 多維的數組對象 , ndarray  #1. 實際數據 .  2.元數據 描述信息

數組的基礎屬性 :

1 .ndim    #維度
2 .shape    #維度數值個數
3 .size    #數組內容個數
4 .dtype    #數組類型
5 .itemsize    #數組內容占內存多少字節

 

數組的創建 : 

# array()    數組內容是: 函數,列表,元組,數據,生成器,序列
import numpy as np
#示例
np.array(range(10)
np.array([1,2,3,4,5])
np.array([[1,2,3,4,5],[6,7,8,9,9]])

# arange()    類似於Python的 range()
np.arange(10)     #生成10個整數
np.arange(10.)      #生成10個浮點型數值
np.arange(1,10,0.1)     #從1到10 每隔0.1生成1個
np.arange(10000)        #生成10000,顯示前3個,中間省略,顯示后面3個

# linspace()     返回在間隔[開始,停止]上 num個均勻的樣本
np.linspace(2.0,3.0,num=5)   #2.0到3.0  生成5個均勻的值
np.linspace(2.0,3.0,num=5,endpoint=False)  #endpoint  默認包頭包尾,False不包尾
np.linspace(2.0,3.0,num=5,retstep=True)   #retstep   步長,分5個值得步長是多少  默認為False

# zeros()/zeros_like()/ones()/ones_like()  #數組生成,zeros 0填充 ones  1填充   *_like()
np.zeros(5)   #生成1維5個0  float類型
np.zeros((2,3,2),dtype=np.int)  #生成2維,3列,0填充,類型為int32 因為多了個2  所以是3維的,可以任意維
# ↑↑↑  語法 numpy.zeros(shape ,dtype=float,order='C'): 返回給定形狀和類型的新數組,用零填充.shape 是指形狀
np.zeros_like(np.arange(10))     #復制arr1 成一個新的數組,同樣的新的數組

# eye()  生成正方形的N*N的單位矩陣,對角線為1,其余為0
np.eye(10)

 

Numpy 的通用函數 基本操作 :

# 數組形狀    轉置,形狀變換,行列轉換
# .T / .reshape() / .resize() :返回一個新的數組
arr1.T
arr2 = np.ones((5,10))
arr2.reshape(10,5) #形狀改變
np.resize(np.arange(1,13).reshape(3,4),(2,2)) #resize()  改變形狀,元素不夠填充

# 數組數據復制    .copy() :   數組的副本
arr1.copy()

# 數據類型轉換    .astype()   參數 : np.數據類型
arr3.astype(np.int)    #返回一個新的數組  int32 , float64 

# 數組的堆疊和拆分  hstack() / vstack() / stack()
np.hstack((數組1,數組2))   # 水平堆疊 , 行數要一致
np.vstack((數組1,數組2))   # 垂直堆疊 , 列數要一致
np.stack((數組1,數組2),axis=0|1)   # 通過指定維度,軸,需要形狀相同

np.hsplit(數組,列數)  # 水平拆分--按列
np.vsplit(數組,行數)  # 垂直拆分--按行

# 數組的簡單運算    矢量化
#  + / - / * / 除 / **1 / .mean() / .max() / .min() / .var()方差 / .std() 標准差
# 維度計算, 行,列 上述函數可添加參數 axis=行,列  sort() 參數為數組  數組排序

 

Numpy 索引和切片 : 

ar = np.arange(16).reshape(4,4)
ar[0]  #切除一行   切片為下一個維度的一個元素
ar[0][-1]  #二次索引,得到其中的一個值
ar[:3]   #切出多行
ar[1,1]   #類似二次索引
ar[:2 , 1:]   #二維切片

# bool 布爾類型索引 False /True
ar = np.arange(12).reshape(3,4)
i = np.array([True,False,True])
j = np.array([False,True,False,False])
ar[i]   #選所有為True
ar[i,:]   #選行
ar[i,j]   #選列

# 基本的布爾類型
# 數組的基本運算bool  > < !=  //  %
ar[ar > 5]  #選取大於?的數

 

Numpy 隨機數 : 

# Numpy隨機數 np.random
np.random.normal(size=(5,5)) #符合標准正態分布的?*?樣本值
np.random.rand(4,5) # [0,1] 之間的隨機樣本或N維附件數組   均勻分布

np.random.randn(4,5)  #生成一個浮點數或者N維的浮點數組   正態分布
# np.random.randint(low ,high=None,size=None ,size =None,dtype='1')
# 生成一個整數或者N維的整數數組 若high不為None時,取[low,high]之間隨機整數
# 否則取值(0,low)之間隨機整數,且high必須大於low. dtype參數,只能是int類型
np.random.randint(0,10,size=6) # 取0到9隨機整數 ,長度6
np.random.randint(1,100,size=[3,5]) #size 參數[]  為[維度,長度]

 

Numpy 數據的存儲和讀取 : 

# Numpy 輸入輸出,數據的存讀
np.save(路徑及文件.npy, 數組數據)
np.load(路徑及文件.npy)

#文本類數據
np.savetxt(路徑及文件.txt,數組,delimiter=',') delimiter 數據分割符
np.loadtxt(路徑及文件.txt,delimiter=',')

 

 


免責聲明!

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



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