數(shù)據(jù)類(lèi)型
靜態(tài)和動(dòng)態(tài)數(shù)據(jù)的區(qū)別!
C++和Python
列表的含義
列表中元素保存的是地址
數(shù)組必備特征:類(lèi)型 數(shù)據(jù) 維度 步幅
不在指向地址? numpy提供一個(gè)與C性能差不多的數(shù)組
查看numpy的版本:numpy.__version__
1.創(chuàng)建數(shù)組
<1>列表創(chuàng)建數(shù)組 a1 = np.array([1,2,3,4,5])
<2>元組創(chuàng)建數(shù)組 a2 = np.array((1,2,3,4,5))
<3>從頭創(chuàng)建數(shù)組 a3 = np.arange(10)? 創(chuàng)建一個(gè)連續(xù)的數(shù)組
a1=np.zeros((2,2))#生成一個(gè)所有元素都是0的2行2列的數(shù)組
a2=np.ones((3,2))#生成一個(gè)所有元素都是1的3行2列的數(shù)組
a3=np.full((2,2),8)#生成一個(gè)所有元素都是8的2行2列的數(shù)組
a4=np.eye(3)#生成一個(gè)在斜方形上元素為1,其他元素都為0的3x3的矩陣

2.數(shù)組屬性
ndarray.dtype

指定數(shù)組類(lèi)型
a1=np.array([1,2,3],dtype=np.int64)
秩:n.ndim? 數(shù)組的維度的元組
維度 形狀 :n.shape (x,y) x行 y列
ndarray.size:獲取數(shù)組中總的元素的個(gè)數(shù)。
(x,y,z) 有x個(gè)元素 每個(gè)元素中y行z列
ndarray.itemsize:數(shù)組中每個(gè)元素占的大小,單位是字節(jié)。

3.數(shù)組的修改
修改數(shù)組維度 n.reshape((x,y)) 這里是一維修改二維 x行y列
? ? ? n.reshape((x,y,z)) 一維修改三維 有x個(gè)元素 每個(gè)元素中y行z列
n.flatten() 多維直接變成一維
n.size? 元素個(gè)數(shù)
? .dtype 數(shù)據(jù)類(lèi)型
? .itemsize 大小(字節(jié)大?。?/p>
4.數(shù)組的操作
增 刪 改 查
n[x] 一維查找
n[x,y] 二維查找 x行 第y個(gè)
n[x:y] 第x行到第y-1行 不要屁股哦!
n[x:y,p:q] 第x行到第y-1行 第p列到第q列
n[x:y:z] 第x行到第y-1行 步長(zhǎng)z
5.布爾索引
a = n<x 數(shù)組n中小于x 返回一個(gè)全是布爾值數(shù)組
n[a] 找到滿(mǎn)足a條件的數(shù) 以一個(gè)數(shù)組的形式
n[x][y]=k 第x行第y個(gè)替換成k
n[a]=k 找到滿(mǎn)足a條件的數(shù) 以一個(gè)數(shù)組的形式 并替換成k
生成隨機(jī)數(shù)組
np.random.randit(m,n,size(x,y)) 從m到n 隨機(jī)生成一個(gè)x行y列的數(shù)組
n.resize((x,y)) 改變本身??! reshape 不改變本身?。。?深淺拷貝
數(shù)組的拼接(數(shù)據(jù)維度要一樣)
a1 a2
a3 = np.vstack([a1,a2])? 上下拼接(列數(shù)必須相同)
a4 = np.hstack([a1,a2]) 左右拼接(行數(shù)必須相同)
np.concatenate([a1,a2],axis=)? axis=0 豎直拼接 axis=1 水平拼接? axis代表參考軸
a是x行y列的數(shù)組? a.T變成y行x列
數(shù)組分割
np.hsplit(a,x) 把a(bǔ)數(shù)組水平分割成x份
np.hsplit(a,[0,1]) 把a(bǔ)數(shù)組在第0行和第1行處切割一下
np.vsplit(a,x) 把數(shù)組豎直分割成x份
np.array_split(a,x,axis=) 數(shù)組a切成x份 axis=0 豎直切割 axis=1 水平切割? axis代表參考軸