標(biāo)簽: 讀書筆記 python 數(shù)據(jù)分析
1. 創(chuàng)建ndarray(多維數(shù)組對象)
函數(shù) | 說明 |
---|---|
array | 將參數(shù)數(shù)據(jù)(列表靴患,元祖婆咸,數(shù)組等序列類型)轉(zhuǎn)換為ndarray伴鳖,可指定dtype |
arange | 類似range偿枕,但返回的是一個ndarray而不是列表 |
ones | 根據(jù)指定的形狀和dtype創(chuàng)建一個全1數(shù)組 |
ones_like | 以另一個數(shù)組為參數(shù)苦囱,根據(jù)其形狀和dtype創(chuàng)建一個全1數(shù)組 |
zeors鞠鲜,zeros_like | 全0數(shù)組 |
empty宁脊,empty_like | 創(chuàng)建新數(shù)組断国,只分配內(nèi)存空間但不填充任何值 |
eye,identity | 創(chuàng)建一個正方的N*N單位矩陣(對角線為1榆苞,其余為0) |
astype(type) | 數(shù)組轉(zhuǎn)換為dtype為type的數(shù)組 |
In: import numpy as np
#array
In: np.array([[1,2,3],[4,5,6]])
Out:
array([[1,2,3],
[4,5,6]])
In: np.array([1,2,3],dtype=np.int32)
Out: array([1,2,3])
#arange
In: np.arange(3)
Out: array([0,1,2])
#ones
In: np.ones((2,3))
Out:
array([[1,1,1],
[1,1,1]])
2. 數(shù)組和標(biāo)量之間的運算
- 大小相等的數(shù)組之間的算數(shù)運算會將運算應(yīng)用的元素級并思,各個相同位置的元素進行各自運算
- 數(shù)組與標(biāo)量的算術(shù)運算會將標(biāo)量值傳播到各個元素進行運算
3. 基本的索引和切片
- 按索引訪問元素
In: arr = arange(10)
In: arr
Out: array([0,1,2,3,4,5,6,7,8,9])
In: arr[5]
Out: 5
In: arr[5:8]
Out: array([5,6,7])
#將一個標(biāo)量值賦值給一個切片時,該值會自動傳播(廣播)到整個選區(qū)
In: arr[5:8] = 12
In: arr
Out: array([0,1,2,3,4,12,12,12,8,9])
In: arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])
In: arr2d[2,2]
Out: 9
In: arr2d[2]
Out: array([7,8,9])
- 與python普通列表切片的區(qū)別:普通列表的切片是列表切片部分的復(fù)制语稠;數(shù)組切片是原始數(shù)組部分的引用(考慮到大數(shù)據(jù)量數(shù)組的性能問題)宋彼,即切片上的任何修改都會直接反映到源數(shù)組上。
In: arr1 = arr[5:8]
In: arr1
Out: array([0,1,2,3,4,12,12,12,8,9])
In: arr1[1] = 12345
In: arr
Out: array([0,1,2,3,4,12,12345,12,8,9])
- 如果需要數(shù)組切片的副本而非引用仙畦,需要顯示進行復(fù)制操作
arr2 = arr[5:8].copy()
- 多維數(shù)組切片
In: arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])
#從第一個軸切片
In: arr2d[:2]
Out:
array([[1,2,3],
[4,5,6]])
#一次從多個軸切片
In: arr2d[1:2,1:]
Out:
array([[5,6]])
#某一個軸直接用索引输涕,得到的結(jié)果數(shù)組的維度將降低一維
In: arr2d[1,:2]
Out:
arrary([4,5])
#只有冒號,表示選取整個軸
In: arr2d[:,:1]
Out:
array([[1],
[4],
[7]])
#對切片的賦值會傳播到整個切片區(qū)域
In: arr2d[:2,1:] = 0
In: arr2d
Out:
array([[1,0,0],
[4,0,0],
[7,8,9]])
- 通用函數(shù)
待續(xù)...