import numpy as np
data1=[6,7.5,8,0,1]
arr1=np.array(data1)
or arr2=np.array([1,2,3,4],[5,6,7,8])
一般np.array為陣列推斷出乙個較為合適的資料型別
除np.array外,還有一些其他函式可以新建資料,如:
函式 說明
array 將輸入資料(列表和陣列等其它序列轉換為ndarray)
asarray 將輸入轉換為ndarray,若輸入本身為ndarray不進行複製
arange 類似range,返回乙個ndarray
ones,ones_like 根據指定的形狀和dtype建立全1陣列。
zeros,zeros_like 類似ones,產生全0陣列
empty,empty_like 建立新陣列,只分配記憶體空間,不放值
eye,identity 建立乙個正方的nxn單位矩陣
可以在建立陣列的時候設定
arr1=np.array([1,2,3],dtype=np.float64)
通過astype轉換陣列dtype:
arr1=np.array([1,2,3,4,5])
float_arr=arr.astype(np.float64)
陣列與陣列的運算,為陣列中對應元素的運算,最後返回陣列。
arr=np.array([[1,2,3],[4,5,6]])
arr-arr
array([[0,0,0],[0,0,0]])
陣列和標量的運算,將標量值傳播到每個元素。
arr=np.arange(10)
[0,1,2,3,4,5,6,7,8,9]
arr[0]
0 arr[5]
5arr[5:8]
[5,6,7] %對值的位置索引。包括左邊位置,不包含右邊位置。
arr_slice=arr[5:8] %將arr中5,6,7位置上的值包括位置賦給arr_slice
arr_slicep[1]=12345. %將12345賦給arr_slice中位置1。
arr %arr陣列中位置6的值為12345
注:如果想得到ndarray切片的副本而非資料檢視,需arr[5:8].copy()
二維陣列切片(此處1行或2行等,都指位置)
arr[:2,1:] %shape為(2,2),意思為選取0與1行,1與2列。
arr[2] %選取2行,和所有列
arr[2,:]
arr[2:,:]
arr[1,:2]
arr[1:2,:2] %選取1行和0與1列
arr=np.arange(15).reshape((3,5))
arr.t
進行矩陣計算時,可能經常用到該操作,如用np.dot計算矩陣內積
arr=np.random.randn(6,3)
np.dot(arr.t,arr)
對於高維度陣列,需要乙個軸編號陣列才能對軸 進行轉置
arr=np.arange(16).reshape((2,2,4))
arr.transpose((1,0,2))
arr=np.arange(10)
np.sqrt(arr)
np.exp(arr)
np.maximum(x,y)
等等np.unique用於找出陣列中唯一值並返回已排序值
ints=np.array([3,3,3,2,2,1,1,4,4])
np.unique(ints)
array([1,2,3,4])
intersect1d(x,y)計算x和y中公共元素,並返回有序結果
union1d(x,y)計算x和y並集,並返回有序結果。
x=np.array([[1.,2.,3.],[4.,5.,6.]])
y=np.array([[6.,23.],[-1.,7],[8,9]])
x.dot(y) %等於np.dot(x,y)
array([[28.,64.],[67.,181.]])
常用的numpy線性代數函式
diag以1維陣列返回方陣對角線元素。
dot 矩陣乘法
trace 計算對角線元素和
det計算矩陣行列式
inv計算**逆
qr qr分解
solve解線性方程組ax=b
lstsq計算ax=b的最小二乘解
Python資料分析學習筆記二
4 陣列的組合 numpy中的陣列組合有水平組合 垂直組合 深度組合和列組合等多種組合方式。使用hstack 函式可以完成陣列的水平拼接,例 import numpy as np a1 np.arange 9 reshape 3,3 print a1 a2 a1 2 print a2 b np.hs...
Python資料分析學習筆記四
之前已經接觸過的陣列屬性有 shape 維度 dtype 資料型別 除此之外,還有很多其他屬性 1 ndim屬性 輸出陣列的維度,或者說陣列軸的個數 2 size屬性 給出陣列下標的總個數 3 itemsize屬性 給出陣列中單個元素在記憶體中佔據的位元組數 4 nbytes屬性 給出陣列中所有元素...
python資料分析學習筆記一
pandas matplotlib ipython與jupyter scipy scikit learn statsmodels matplotlib inlineimport matplotlib as plt plt.plot np.random.randn 50 cumsum from dat...