大學學習一直使用matlab處理矩陣,行列式運算。matlab功能強大,確實好用,可是這麼多年基本忘光了。如今工做中推薦算法,數據處理,機器學習,人工智能,數據分析處理確實有必定須要,並且目前不少方面些欠缺,須要完善這方面的知識,也就須要把矩陣,行列式等相關的東西再拾回來。主要是最近發現numpy,matplotlab,pandas,scipy能夠徹底替代matlab,並且各個模塊免費的,還由於有至關豐富的網絡教程。那既然各個條件都知足,因此決定靜下心來好好的學習一下這些東西,想最終學以至用。首先學習numpy,一週左右弄清全部的概念和使用,會有4-6篇文章。python
NumPy 是一個運行速度很是快的數學庫,主要用於數組計算。支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫,包含:算法
python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
複製代碼
>>> import numpy as np
>>> np.__version__
'1.16.3'
複製代碼
ndarray是一個N維,相同類型的數據的組合,每一個元素佔用相同類型的內存空間,而且以0開始索引。 ndarray 內部由如下內容組成:數組
下面經過實例理解:bash
>>> a = [1,2,3,4]
>>> dt = np.array(a)
>>> print(dt)
[1 2 3 4]
複製代碼
>>> a = [[1,2,3],[4,5,6]]
>>> dt = np.array(a)
>>> print(dt)
[[1 2 3]
[4 5 6]]
複製代碼
>>> a = [[[1,2,3]],[[4,5,6]]]
>>> dt = np.array(a)
>>> print(dt)
[[[1 2 3]]
[[4 5 6]]]
複製代碼
>>> a = [[1,2,3],[4,5,6]]
>>> dt = np.array(a,dtype='float')
>>>
>>> print(dt)
[[1. 2. 3.]
[4. 5. 6.]]
複製代碼
>>> a = [[1,2,3],[4,5,6]]
>>> dt = np.array(a,dtype='complex')
>>> print(dt)
[[1.+0.j 2.+0.j 3.+0.j]
[4.+0.j 5.+0.j 6.+0.j]]
>>>
複製代碼
dtype類型和Python中的數據類型同樣,用來標識變量類型,不過numpy中的數據類型遠比python類型要複雜,咱們本章只作簡單的介紹,後面會有單獨的章節詳細介紹。網絡
類型名 | 說明 |
---|---|
int_ | 默認類型 int32或者int64 |
int8 | 有符號整數 (-128 到 127) |
int16 | 有符號整數(-32768 到 32767) |
int32 | 有符號整數(-2147483648 到2147483647) |
int64 | 有符號整數(-9223372036854775808 到 9223372036854775807) |
uint8 | 無符號整數(0 到 255) |
uint16 | 無符號整數(0 到 65535) |
uint32 | 無符號整數(0 到 4294967295) |
uint64 | 無符號整數(0 到 18446744073709551615) |
類型名 | 說明 |
---|---|
float_ | float64的簡寫類型 |
float16 | 半精度浮點數,包括:1 個符號位,5 個指數位,10 個尾數位 |
float32 | 半精度浮點數,包括:1 個符號位,8 個指數位,32 個尾數位 |
float64 | 半精度浮點數,包括:1 個符號位,11 個指數位,52 個尾數位 |
類型名 | 說明 |
---|---|
complex_ | complex128的簡寫類型,即 128 位複數 |
complex64 | 表示雙 32 位浮點數(實數部分和虛數部分) |
complex128 | 表示雙 64 位浮點數(實數部分和虛數部分) |
使用示例簡單理解:機器學習
複製代碼
待續。。。。ide