學習Python的童鞋,對numpy都不陌生,小白最近學習了一些Numpy的方法,發現Numpy真的很強大。
Numpy:本質的數字化的python,當然也可以存放string類型的數據。
如何創建array?可以用tuple也可用list.
其中,dtype用來指定數據類型,int32指,存放int類型最高32位,不過也可以去掉32,直接寫int。數據類型float都可以定義數據的長度,也可以不定義。
第一種用tuple
tuple=(1,2,3,4)
a=np.array(tuple,dtype='int32')
a
結果為:
array([1, 2, 3, 4])
第二種用list
list=[1,2,3,4]
b=np.array(list,dtype='int32')
b
結果為:
array([1, 2, 3, 4])
如果同樣是傳入int類型的list,但是指定為float類型,如下:
list=[1,2,3,4]
c=np.array(list,dtype='float')
c
結果為:
array([1., 2., 3., 4.])
這里自動就將數據轉成float類型了。
上面都是單list或者單tuple傳入,那么一樣可以混合傳入:
d=np.array([list,tuple])
d
d.shape
array([[1, 2, 3, 4],
[1, 2, 3, 4]])
(2, 4)
這里安利一個小功能,查看array的類型(shape函數),從結果可以看出是一個2行4列的數組。
創建一些特殊的矩陣:
1)生成相應大小的零矩陣,默認數據類型是float
用法:
zeros(shape, dtype=float, order='C')
參數:
? ? ? ? ? ? shape:
形狀
? ? ? ? ? ?
dtype:
數據類型,可選參數,默認numpy.float64
? ? ? ? ? ? dtype類型:t ,位域,如t4代表4位
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b,布爾值,true or false
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i,整數,如i8(64位)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? u,無符號整數,u8(64位)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? f,浮點數,f8(64位)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? c,浮點負數,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? o,對象,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s,a,字符串,s24
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? u,unicode,u24
? ? ? ? ? ?
order:
可選參數,c代表與c語言類似,行優先;F代表列優先
2)生成相應大小的1矩陣,默認數據類型是float
用法: numpy.ones(shape, dtype=None, order=’C’)
參數:
? ? ? ? ? ?shape:
形狀
? ? ? ? ? ?dtype:
數據類型,可選參數,默認numpy.float64
? ? ? ? ? ?order: 可選參數,c代表與c語言類似,行優先;F代表列優先
3)生成一個隨機元素的矩陣,大小按照參數定義,默認數據類型是float
用法: empty(shape[, dtype, order])
參數
:
shape :
整數或者整型元組定義返回數組的形狀;
? ? ? ? ? ?
dtype :
數據類型,可選定義返回數組的類型。
? ? ? ? ? ?
order :
{‘C’, ‘F’}, 可選規定返回數組元素在內存的存儲順序:C(C語言)-rowmajor;F(Fortran)column-major
4)生成相應大小的一個對角線元素為1,其余位置為0的矩陣
用法:
numpy.eye(N, M=None, k=0, dtype=
參數:
?? ? ? ? ??
N:int值,行數。
? ? ? ? ? ?M:int值,列數,如果沒有則默認為N。
? ? ? ? ? ?dtype:返回的數據元素的格式,默認為float。
? ? ? ? ? ?order:1.14.0版本后,可選參數{'C', 'F'}
下面是對應的小例子~
1)np.zeros([3,3])
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
2)np.ones([3,4])
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
3)np.empty([2,3])
array([[3.46e-322, 0.00e+000, 0.00e+000],
[0.00e+000, 0.00e+000, 0.00e+000]])
4)np.eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
numpy的一些函數:
1)函數說明:arange([start,] stop[, step,], dtype=None)
? ? 根據start與stop指定的范圍以及step設定的步長,生成一個 ndarray。?
2)函數說明:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
? ?在指定的間隔內返回均勻間隔的數字。
? ?返回num均勻分布的樣本,在[start, stop]。
? ?這個區間的端點可以任意的被排除在外。
3)random有函數
1.np.random.random((a,b))
? a代表隨機生成的個數,b代表區間,如果b=10就是從0-10中隨機。
2.numpy.random.rand(a0, a1, ..., an)
? 生成一個[0,1)之間的隨機浮點數或N維浮點數組。
3.numpy.random.randn(a0, a1, ..., an)
? 生成一個浮點數或N維浮點數組,取數范圍:正態分布的隨機樣本數。
4.numpy.random.standard_normal(size=None)
? 生產一個浮點數或N維浮點數組,取數范圍:標準正態分布隨機樣本
5.numpy.random.randint(low, high=None, size=None, dtype='l')
? 生成一個整數或N維整數數組,取數范圍:若high不為None時,取[low,high)之間隨機整數,否則取值[0,low)之間隨機整數。
6.numpy.random.random_integers(low, high=None, size=None)
? 生成一個整數或一個N維整數數組,取值范圍:若high不為None,則取[low,high]之間隨機整數,否則取[1,low]之間隨機整數。
7.numpy.random.random_sample(size=None)
? 生成一個[0,1)之間隨機浮點數或N維浮點數組。
8.numpy.random.choice(a, size=None, replace=True, p=None)
? 從序列中獲取元素,若a為整數,元素取值為np.range(a)中隨機數;若a為數組,取值為a數組元素中隨機元素。
9.numpy.random.shuffle(x)
? 對X進行重排序,如果X為多維數組,只沿第一條軸洗牌,輸出為None。
10.numpy.random.permutation(x)
? 與numpy.random.shuffle(x)函數功能相同,兩者區別:peumutation(x)不會修改X的順序。
1)np.arange(2,10,2)
array([2, 4, 6, 8])
2)np.linspace(0,10,3)
array([ 0., 5., 10.])
3)a = np.random.random([4,4])
[[0.94927293 0.11516777 0.15205786 0.36055847]
[0.24878514 0.33557077 0.30436868 0.70995221]
[0.39684346 0.18775942 0.03005964 0.57851862]
[0.22523724 0.59238284 0.86613604 0.29699464]]
? ? ? 以上是對numpy的一些簡單函數的使用及創建,歡迎大家交流學習哦。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
