在使用神經網路訓練時,往往要求我們輸入的資料是二維的,但有時我們得到的單條資料是一維的,這時候就需要我們將一維的資料擴充套件到二維。
numpy.expand_dims(a, axis)
舉例:
>>> import numpy as np
>>> a = np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> a.shape
(3,)
>>> np.expand_dims(a, axis=0)
array([[1, 2, 3]])
>>> np.expand_dims(a, axis=0).shape
(1, 3)
>>> np.expand_dims(a, axis=1).shape
(3, 1)
>>> b = np.array([[1,2,3],[2,3,4]])
>>> b.shape
(2, 3)
>>> np.expand_dims(b, axis=0).shape
(1, 2, 3)
>>> np.expand_dims(b, axis=1).shape
(2, 1, 3)
>>> np.expand_dims(b, axis=2).shape
(2, 3, 1)
>>> np.expand_dims(b, axis=-1).shape
(2, 3, 1)
>>> np.expand_dims(b, axis=-2).shape
(2, 1, 3)
>>> np.expand_dims(b, axis=-3).shape
(1, 2, 3)
使用numpy.reshape(a, newshape)
>>> a
array([1, 2, 3])
>>> a.shape
(3,)
>>> np.reshape(a, (1,3)).shape
(1, 3)
>>> np.reshape(a, (3,1)).shape
(3, 1)
>>> b
array([[1, 2, 3],
[2, 3, 4]])
>>> b.shape
(2, 3)
>>> np.reshape(b, (1,2,3)).shape
(1, 2, 3)
>>> np.reshape(b, (2,1,3)).shape
(2, 1, 3)
>>> np.reshape(b, (2,3,1)).shape
(2, 3, 1)
有時候我們又想把高維度資料轉換成地維度
numpy.squeeze(axis=none)
從ndarray
的shape
中,去掉維度為1的。預設去掉所有的1。
注意:只能去掉shape中的1,其他數字的維度無法去除。
舉例:
>>> a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> a = a.reshape(1, 1, 1, 2, 5)
>>> a.shape
(1, 1, 1, 2, 5)
>>> a.squeeze().shape # 預設去掉shape中的所有的1
(2, 5)
>>> a.squeeze(0).shape # 去掉第1個1
(1, 1, 2, 5)
>>> a.squeeze(-3).shape # 去掉倒數第3個1
(1, 1, 2, 5)
同上,使用numpy.reshape(a, newshape)
盡可能減少 資料處理中的記憶體消耗
盡可能減少 資料處理中的記憶體消耗 伺服器成本 時間成本 def filerows f,debug false l global pass ip with open f,r as fr for i in fr try d json.loads i i i.strip n except excepti...
python中numpy與matlab的對應關係
通用函式等價表 matlab numpy說明 help func info func or help func orfunc?在ipython環境下 檢視關於func的幫助文件 type func source func orfunc?在ipython環境下 當func不是內建函式時,查詢它的 a ...
numpy中的array與matrix的區別
numpy.mat和numpy.matrix的區別 型別特點 ndarray 可以為多維 1d,2d,3d nd matrices 必須為2維 matrix是array的乙個小的分支,包含於array。所以matrix擁有array的所有特性。雖說matrix僅僅是array的乙個小分支,但是他也是...