- NumPy對(duì)象:數(shù)組
reshape
ndim"查看維度;
shape"查看各維度的大??;
size查看全部的元素個(gè)數(shù),等于各維度大小的乘積;
dtype"可查看元素類型;"dsize"查看元素占位(bytes)大小```
- 創(chuàng)建數(shù)組
raw = [0,1,2,3,4]
a = np.array(raw)
np.zeros()
np.ones(d, dtype=int)
np.random.rand(5)```
- 數(shù)組操作
'+','-','','/'運(yùn)算都是基于全部的數(shù)組元素的
類似C++,'+='、'-='、'='、'/='操作符在NumPy中同樣支持
開根號(hào)求指數(shù)
'''a.sum()
a.max()
a.min()
a.max(axis=1) 行最大值
a.min(axis=0) 列最小值'''
數(shù)組可以通過(guò)asmatrix或者mat轉(zhuǎn)換為矩陣,或者直接生成也可以:
a = np.arange(20).reshape(4, 5)
a = np.asmatrix(a)
print type(a)
b = np.matrix('1.0 2.0; 3.0 4.0')
print type(b)
arange(起始,終止,步長(zhǎng))
linspace(起始,終止,長(zhǎng)度)
- 數(shù)組元素訪問(wèn)
a = np.array([[3.2, 1.5], [2.5, 4]])
print a[0][1]
print a[0, 1]
下標(biāo)訪問(wèn)來(lái)修改數(shù)組元素的值
b = a
a[0][1] = 2.0 b和a一起變 淺復(fù)制
a = np.array([[3.2, 1.5], [2.5, 4]])
b = a.copy()
a[0][1] = 2.0 a變b不變
':'可以訪問(wèn)到某一維的全部數(shù)據(jù)
a[:,[1,3]]
。下面這個(gè)例子是將第一列大于5的元素(10和15)對(duì)應(yīng)的第三列元素(12和17)取出來(lái)
a[:, 2][a[:, 0] > 5]
where函數(shù)查找特定值在數(shù)組中的位置
loc = numpy.where(a==11)
print loc
print a[loc[0][0], loc[1][0]]
a[a>4] 訪問(wèn)大于4的數(shù)據(jù)
- 數(shù)組操作
np.transpose()
mat.T
求逆
import numpy.linalg as nlg
a = np.random.rand(2,2)
a = np.mat(a)
ia = nlg.inv(a)
修剪異常值:
a.clip(0,4) 將大于4的數(shù)據(jù)變?yōu)? 小于0的數(shù)據(jù)變?yōu)?
求特征值和特征向量
eig_value, eig_vector = nlg.eig(a)
按列拼接兩個(gè)向量成一個(gè)矩陣:
a = np.array((1,2,3))
b = np.array((2,3,4))
print np.column_stack((a,b))
c = np.hstack([a,b])水平連接
d = np.vstack([a,b])豎直連接```
- 缺失值
a = np.random.rand(2,2)
a[0, 1] = np.nan
print np.isnan(a)
a = np.random.rand(2,2)
a[0, 1] = np.nan
print np.isnan(a) nan替換成0
a[~np.isnan(a)] 取出a中非異常值