Python_numpy
numpy能夠快速的操作多重維度陣列,具備平行處理能力,就連pandas也跟numpy息息相關。numpy的底層為c與fortran
IMPORT
import numpy as np # 大家習慣as np
ndarray的關鍵屬性是維度(D)、形狀(S)與數值型別(dtype),並且可原地改變形狀,變更陣列的維度!建立陣列
範例_reshape:調整陣列維度與形狀
調整陣列維度與形狀# D=1, S=(8,), dtype=int64
a = np.array([1, 2, 3, 4, 5, 6, 7, 8])
# D=2, S=(2, 4), dtype=int64
a = a.reshape([2, 4])
# D=3, S=(2, 2, 2), dtype=int64
a = a.reshape([2, 2, 2])
範例_astype:調整型別
x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
x.shape
x.shape=(6,)
x = x.astype('int64')
x.dtype
範例_zeros:建立填滿0的陣列
需注意,以此方式產生的陣列預設型別為float64a = np.zeros([2, 3])
範例_ones:建立填滿1的陣列
需注意,以此方式產生的陣列預設型別為float64a = np.ones([4, 5])
範例_random:亂數建立陣列
亂數的範圍為0-1a = np.random.random((2, 3))
範例_linspace:產生平均間隔陣列
# 產生陣列,5個2-10的平均間隔,
a = np.linspace(2, 10, 5)
範例_arange:產生平均間隔陣列
不同於linsapce,arange不會有最大值# 產生一個2-10(不包含10)並且step=2的陣列
a = np.arange(2, 10, 2)
a = np.arange(6) # 產生一個0-5的陣列
陣列索引與切片
a = np.array([1, 2, 3, 4, 5, 6])
a[3] # 4
a[2,3] # 3,4
a[:4:2] # 2,4
a[::-1] # 6,5,4,3,2,1 反轉陣列
陣列計算
範例_基礎計算(加、減、乘、除)
a = np.array([1, 2, 3, 4, 5, 6])
a = a.reshape([2, 3])
a
a+2
a-2
a*2
a/2
如果用浮點去處理,其陣列結果型別也會跟著改變!
範例_布林計算
a = np.array([1, 2, 3, 4, 5, 6])
a < 4
範例_mean:取得平均值
a = np.array([1, 2, 3, 4, 5, 6])
a = a.reshape((2, 3))
a
a.mean()
# 取第二軸平均值
a.mean(axis=1)
a.mean(axis=0)
範例_std:取得標準差
a = np.array([1, 2, 3, 4, 5, 6])
a = a.reshape((2, 3))
a
a.std()
# 取第二軸標準差
a.std(axis=1)
a.std(axis=0)
範例_min:取得最小值
a = np.array([1, 2, 3, 4, 5, 6])
a = a.reshape((2, 3))
a
a.min()
a.min(axis=1)
a.min(axis=0)
範例_sum:取得加總
a = np.array([1, 2, 3, 4, 5, 6])
a = a.reshape((2, 3))
a
a.sum()
a.sum(axis=1)
a.sum(axis=0)
範例_cumsum:取得累加
a = np.array([1, 2, 3, 4, 5, 6])
a = a.reshape((2, 3))
a
a.cumsum()
a.cumsum(axis=1)
a.cumsum(axis=0)
沒有留言:
張貼留言