怎麼這麼多庫
Numpy,SciPy和Pandas,Matplotlib這幾個常見庫的區別是什麼?傳送門
Numpy
常見功能一覽
矩陣處理
-
如果需要把一個多維數組“拍平”,可以使用 flatten 函數:
name.flatten()
數據的疊加hstack(打橫) 和 vstack(樹立)print('水平方向:', np.hstack((f, g)))
ravel():如果沒有必要,不會產生源數據的副本
flatten():返回源數據的副本
squeeze():只能對維數爲1的維度降維 -
z.reshape(-1, 1)
行數未知,列數爲1,numpy.reshape(a, newshape, order='C')
反正-1就是不管了的意思嘛 -
numpy.moveaxis
(123)將2移動到3 同樣的函數還有transpose swapaxes
-
a.dot(b)
與np.dot(a,b)
效果相同都是矩陣的相乘(左乘右)
np.asarray(projection_matrix).dot(point_3d_position)
是後者的矩陣點乘前者的矩陣
區分np.matmul(h, i)
矩陣相乘
https://blog.csdn.net/alwaysyxl/article/details/83050137 -
round(80.23456, 2) : 80.23
,不設置參數則取整 -
np.linalg.norm
求範數 https://blog.csdn.net/hqh131360239/article/details/79061535
np.linalg.det()
:矩陣求行列式np.linalg.inv()
:矩陣求逆
np.transpose()
: 矩陣轉置(對於三維的數組,有比如(1,0,2)就是將第一維,第二維的元素進行reshape的操作,就是重新放置一下) -
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
等差數列,當endpoint=false的時候,結束點會被排除,公差-10%,retstep=true的時候會顯示公差。
numpy的數組的處理
-
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print (a[...,1]) # 第2列元素
print (a[1,...]) # 第2行元素
即等於print (a[1,:])
逗號前的是索引,後面是空的切片print (a[...,1:]) # 第2列及剩下的所有元素
反之print (a[1:,:])
就是一維下第2行及剩下的所有元素print (a[::2]) #步長爲2的切片
!對於n維數組,第n+1個參數是沒有 “ ,
”沒有切片的性質的 -
numpy.digitize(x, bins, right = False)
返回x在數組bins的位置(right:間隔是否包含最右 -
矩陣轉換列表類a2.tolist() 列表轉數組 np.array(a3)
-
numpy.digitize(x, bins, right = False) bins :一維單調數組,必須是升序或者降序
right:間隔是否包含最右 返回值:x在bins中的位置 -
array[array >= value]直接用numpy數組的比較哦嘻嘻
-
np.diag = diagonal對角線一維變二維,二維變一維
-
np.tile 按照參數往不同的方向鋪瓷磚啊
Pandas
pandas 是基於NumPy 的一種工具,該工具是爲了解決數據分析任務而創建的。
Series:可以運用ndarray或字典的幾乎所有索引操作和函數,融合了字典和ndarray的優點。DataFrame:是一個表格型的數據結構,它含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾值等)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引)。
Index:pandas的索引對象負責管理軸標籤和其他元數據(比如軸名稱等)。構建Series或DataFrame時,所用到的任何數組或其他序列的標籤都會被轉換成一個Index。Index對象不可修改,從而在多個數據結構之間安全共享。
Matplotlib
- 出現了死活不出圖的問題,百度了很多的解決方法,我覺得,
不要你覺得,是新版的庫導入方式的問題,我的matplotlib版本爲3.1.0,正確的導入姿勢應該是import matplotlib.pyplot as plt
TensorboardX
- 教程 https://www.jianshu.com/p/46eb3004beca
PIL
- PIL.Image與np.array的轉換
PIL —> np |img = numpy.array(im)
np —> PIL |img = Image.fromarray(img.astype('uint8')).convert('RGB')
不同庫之間的數組轉換是要的!!!先轉換爲他的形式纔可以使用他的功能 - 圖片縮放並不會失真
img = img.resize((width, height),Image.ANTIALIAS)