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

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