James測試中
James測試中

只是一介大學生,喜好著攝影、AI相關罷了,文章不定時更新,偶爾發一下技術性文章。阿,我也有Like Social喔 -- James_phto快來追蹤我,專門發廢文、跟零散照片。加我正在測試中

Numpy--資料科學的工具之一

實際上資料科學上還會用的有pandas、matplotlib、scipy等等,後面有機會會再講,這篇只會講到大概率會用到的及理解它的方式

以下也可以使用google colaboratory 操作,這樣就不會留下任何資料在本地

第一步,把它裝下來
有載過就會長這樣
第二步,測試一下
as 的名字"np"等效於numpy 也就是說,如果我沒用as 那np.array就要變成numpy.array
第三步,嘗試理解它說甚麼

numpy官方,相信我你絕對不會想看的,等有一點熟了,再回來繼續看
於是,至少你現在知道他是用來做矩陣運算的。
好了,說太多廢話,直接切重點

NumPy Array:
此套件有著具備多重維度且同質ndarray物件(N-dimensional array)。
何謂同質 -- 講白話一點就是在這個矩陣內的元素資料型態都一樣,如int32
跟list的差別就在這(list可以放不同型態的,當然這兩個的處理時間也差很多)
可以拆成維度(ndim)--有學線代應該會說rank
形狀(shape)、數值型態(dtype)
正常來說,當一維陣列時我們會說vector(向量)
二維會說matrix(矩陣),由row(列)、column(行)組成

二類的必備技能(X

於是乎,numpy學會了如何創造陣列(X

語法:numpy.array()

其資料型態就是大名鼎鼎的ndarray

當然也可以去變更其資料

也可以幫它整形(改變維度) -- numpy.reshape(a, newshape, order="F")
a -- 就是你想幫她整形的陣列
newshape -- 新的樣子,如1*6變成2*3這樣
order -- 基本上完全不會用到,有C、F、A,單純的只是一個排列方式,,這個就不試了

np.reshape(arr2,(3,2,-1)) 也可以這樣設 但就會是三維

改變陣列型別有:bool、int、float、string
bool -- 包含True、False
int -- 包含int16、int32、int64,那個數字就是bits,沒學過暫時可以無視它
float -- 包含float16、32、64,這表示小數後幾位
string -- 就打的字串那些
nan -- 則是指遺失值,偶爾會是指非數

第四步,拿來做矩陣運算(X

轉置矩陣

這樣的意思,我就不提太多解釋了

點積(dot product)

內積(inner)

外積(outer)

倒置矩陣

以上的都是線性代數會用到(X

第五步,切片索引

一維:

看不懂?罰你回去看基礎語法篇#2

二維:

[column, row]

三維:

第六步,添加及取代及合併

numpy.append:

numpy.insert(arr,obj,values,axis)
arr -- 一維或多維的陣列
obj -- 元素插入的位置(索引值)
values -- 插入的數值
axis -- 對應的軸,若沒輸入則默認將所有陣列列成一條(flatten),平面化的概念

axis沒輸入的話會這樣
也可以這樣
或者這樣

np.delete(arr,obj,axis):解釋同上

Combining Arrays:
vstack:垂直方向整合 --- vertical stack
hstack:水平方向整合 --- horizontal stack
concatenate (axis = 0):沿垂直方向整合
concatenate (axis = 1):沿水平方向整合

恩...等效的,我在講廢話

Splitting Arrays:
vsplit:垂直方向分割
hsplit:水平方向分割

完工~繼續潛水



CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…
加载中…

发布评论