(點擊上方公眾號,快速關注一起學AI)
這是我學<Python數據分析>時整理出來的numpy基礎速讀筆記,內容大致分為:Numpy簡介,ndarray對象的構建,以及對ndarray屬性的理解。歡迎找茬&可勁拍磚!
numpy最主要的是支持矩陣操作與運算
非常高效是numpy的優勢,core為C編寫。提升了python的處理效率
numpy是一些與比較流行的機器學習框架的基礎。
名詞解釋:ndarray是numpy的核心數據類型,即(n-dimensional array)多維數組
,tensorflow中的tensor(張量),它本質上也多維數組,但這個名字很高大上。因此,理解多維數組對之後的機器學習會有很大幫助。
導入import numpy as np
使用幫助
dir(np)
從Python數組構建l1=[1,2,3,4,5]
print (type(l1))
l2=np.array(l1)
print (type(l2))
l3=list(l2) # ndarray轉為Python list
print (type(l3))
n1=np.array([1,2,3])
n1.shape
n2= np.array([[1,2,3],[4,5,6]])
n2.shape
序列創建:
np.arange(15)#類似於python中的range,創建一個第一個維度為15的ndarray對象。
np.arange(2,3,0.1) #起點,終點,步長值。含起點值,不含終點值。
np.linspace(1,10,10) #起點,終點,區間內點數。起點終點均包括在內。
np.arange(0,1,0.1) #0到1之間步長為0.1的數組, 數組中不包含1
np.linspace(0, 1, 5) # 開始:0, 結束1, 元素數 5。
填充創建:
np.zeros((2,3)) #創建一個全零的,2x3的矩陣, 注意:傳入參數是一個tuple,因此別忘了()
np.ones((2,3)) #創建一個全為1的,2x3的矩陣
np.identity(5) #方陣identity(),只需要一個參數,建立n*n的方陣
a = np.random.rand(5,5)#指定數字矩陣fill()函數
a.fill(7)
a
np.empty((6,6))#空的ndarray,指定其shape即可,注意:空不意味著值為0,而是任何的value,內存中沒有被初始化的。
np.eye(3)# 對角線矩陣
np.random.rand(3,2) #隨機數矩陣:
關於隨機數方法:
rand:返回均勻分布隨機數
randn:返回服從正態分布的隨機數
numpy數據類型及轉換d1=np.array([1,2,3,4,5])
print(d1)
pint(d1.dtype) # Numpy會自動根據ndarray對象中的值判定數據類型,這裡為整型。
d1.astype(np.float32)# 如果想把它強制轉為浮點型,可以用astype函數轉換。
np.random.rand((3,2),dtype=np.float32)# 也可以在創建ndarray時,即指定其數據類型
#numpy數據類型參考
類型
類型代碼
說明
int8、uint8
i1、u1
有符號和無符號8位整型(1位元組)
int16、uint16
i2、u2
有符號和無符號16位整型(2位元組)
int32、uint32
i4、u4
有符號和無符號32位整型(4位元組)
int64、uint64
i8、u8
有符號和無符號64位整型(8位元組)
float16
f2
半精度浮點數
float32
f4、f
單精度浮點數
float64
f8、d
雙精度浮點數
float128
f16、g
擴展精度浮點數
complex64
c8
分別用兩個32位表示的複數
complex128
c16
分別用兩個64位表示的複數
complex256
c32
分別用兩個128位表示的複數
bool
?
布爾型
object
O
python對象
string
Sn
固定長度字符串,每個字符1位元組,如S10
unicode
Un
固定長度Unicode,字節數由系統決定,如U10
ndarray.ndim查看ndarray的dimension維度數。
n1=np.identity(5)
n1.ndim
查看ndarray的shape形狀,返回值 是一個tuple,當維數為2維時,返回的是行數、列數、……數組的各個維(注意和維和維數要區分開)。它是一個數組各個維的長度構成的整數元組。對n行m列矩陣而言,shape將是(n,m)。因此,shape元組的長度也就是rank,也是維數ndim。
ndarray.dtype查看ndarray對象的數據類型
查看ndarray對象中元素的數量
———未完待續———
小七透露下:下篇筆記是關於ndarray的訪問與設置噠。歡迎同學們投稿/提建議。
投稿請聯繫微信號:julyedukefu(稿件一經採用,你將收穫高額稿酬&專屬學習大禮包)