python中矩陣和陣列

2021-09-26 01:33:26 字數 2591 閱讀 7684

我感覺張量是乙個統稱,陣列、矩陣這些都可被稱為張量。

矩陣是陣列的特例。當陣列是二維的時候,就可以稱為矩陣。

矩陣和二維陣列在某些場合可以通用。

建立陣列

'''

建立陣列時,錯誤的 將數值當作引數,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版 張志湧編著,北京航空航天大學出...