我感覺張量是乙個統稱,陣列、矩陣這些都可被稱為張量。
矩陣是陣列的特例。當陣列是二維的時候,就可以稱為矩陣。
矩陣和二維陣列在某些場合可以通用。
建立陣列
'''
建立陣列時,錯誤的 將數值當作引數,array()裡面的引數應該是
+9乙個列表或者乙個元組或者說在外觀上已經是乙個陣列了
numpy庫中的array將其變成陣列
普通的建立方法: 只有當元素已知才能建立,引數的格式就是建立出來的陣列的格式
'''1.
#建立一維陣列
y=np.array([1,2])
print(y,type(y))
結果:
[1 2]
print(y,type(y),y.shape) (2,)
建立一維陣列的另一種方式
使用 arange() 函式,他的功能 和 range 相似,
區別是 arange() 會返回乙個一維陣列, 有了這樣乙個一維陣列 之後,
我們可以使用 reshape() 函式來改變他的形狀。
2.#建立二維陣列 兩行三列
x=np.array([(1,2,3),(3,4,3)])
print(x,type(x),x.shape)
結果:[[1 2 3]
[3 4 3]]
(2, 3)
可以看出他們的型別已經變成了 ndarray(n維陣列的形式)
陣列函式
1.x.shape
x=np.array([(1,2,3),(3,4,3)])
print(x.shape)
結果:(2, 3)
表示這是乙個二維陣列,兩行三列
2.x.reshape(),如果行列數 未定 可以是使用-1
numpy.reshape(a, newshape, order=』c』)
把陣列的維度進行改變
1.
x=np.array([(1,2,3),(3,4,3)])
print(x)
y=x.reshape(3,2)
print(y)
結果:[[1 2 3]
[3 4 3]]
[[1 2]
[3 3]
[4 3]]
2. x.reshape(1,-1)
表示列數未定,但是 有1行
3. zeros(),生成的陣列全是零;ones()生成元素全是1的矩陣
x=np.zeros((2)) #會生成一維陣列
print(x)
y=np.zeros((2,)) #會生成一維陣列
print(y)
z=np.zeros((2,3)) #會生成二維陣列
print(z)
#用乙個元組作為引數,控制生成的陣列的 形狀
結果:[0. 0.]
[0. 0.]
[[0. 0. 0.]
[0. 0. 0.]]
4. eye()生成單位矩陣(對角線元素是1,其餘元素全是0)
x=np.eye(3)
print(x)
建立一維陣列的另一種方式
使用arange()函式,他的功能 和range相似,區別是arange()會返回乙個一維陣列, 有了這樣乙個一維陣列 之後,我們可以使用reshape()函式來改變他的形狀。
5.transpose()
y=np.arange(24).reshape((2,3,4))
print(y,y.shape)
x=y.transpose(0,2,1)
print(x,x.shape)
結果:[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]] (2, 3, 4)
[[[ 0 4 8]
[ 1 5 9]
[ 2 6 10]
[ 3 7 11]]
[[12 16 20]
[13 17 21]
[14 18 22]
[15 19 23]]] (2, 4, 3)
從結果可以看出來 ,可原來的形狀是(2,3,4),轉置後陣列的形狀變成了 (2,4,3)
其實transpose()裡面的引數 0對應2,1對應3,2 對應4
我是看了這個以後理解的。
這是一條分界線
下面是矩陣
矩陣和陣列
matlab 是 matrix laboratory 的縮寫形式。matlab 主要用於處理整個的矩陣和陣列,而其他程式語言大多逐個處理數值。所有 matlab 變數都是多維陣列,與資料型別無關。矩陣是指通常用來進行線性代數運算的二維陣列。要建立每行包含四個元素的陣列,請使用逗號 或空格分隔各元素。...
一 矩陣和陣列
矩陣和陣列 matlab 是 matrix laboratory 的縮寫形式。matlab 主要用於處理整個的矩陣和陣列,而其他程式語言大多逐個處理數值。所有 matlab 變數都是多維陣列,與資料型別無關。矩陣是指通常用來進行線性代數運算的二維陣列。陣列建立 要建立每行包含四個元素的陣列,請使用逗...
python矩陣左除 矩陣和陣列的區別
陣列中的元素可以是字元等 矩陣中的只能是數 這是二者最直觀的區別。因為矩陣是乙個數學概念 線性代數裡的 陣列是個計算機上的概念。你見過純粹數學中有陣列的概念嗎?沒有。因為計算機上 準確的說是資訊科學中 常用到線性代數的知識,就引用了矩陣的概念。精通matlab6.5版 張志湧編著,北京航空航天大學出...