Numpy 陣列和矩陣

2021-08-15 01:56:33 字數 3376 閱讀 8076

numpy包含了兩種基本型別:陣列ndarray和矩陣matrix

numpy陣列中所有元素的型別必須是相同的

1、建立陣列

ndarray又叫多維陣列物件,建立陣列的最簡單的方式就是使用array函式,它接受一切序列化的物件(包括其他陣列),然後產生乙個新的含有傳入資料的numpy陣列

通過tuple構建ndarray

in[1]: import numpy as np

in[2]: tuple = (1,2,3)

in[3]: result = np.array(tuple)

in[4]: result

out[4]: array([1, 2, 3])

通過list構建ndarray

in[5]: list = [0,1,2]

in[6]: result = np.array(list)

in[7]: result

out[7]: array([0, 1, 2])

構建多維array

in[8]: list1 = [1,2,3]

in[9]: list2 = [4,5,6]

in[10]: result = np.array([list1,list2])

in[11]: result

out[11]:

array([[1, 2, 3],

[4, 5, 6]])

2、陣列的索引

# 取第一行第一列的元素

in [85]: result[0][0]

out[85]: 1

in [86]: result[0,0]

out[86]: 1

# 取第一行所有列的元素

in [87]: result[0,:]

out[87]: array([1, 2, 3])

3、陣列相乘(ndarray的乘法是元素乘法,即每個元素一一對應)

in [18]: result*2

out[18]:

array([[ 2, 4, 6],

[ 8, 10, 12]])

必須是二維的,是特殊的陣列。matrix 擁有array的所有特性

matrix的主要優勢是:相對簡單的乘法運算符號

1、建立矩陣

當傳入物件只有一維,使用np.mat( )的時候會自動公升為二維陣列(即矩陣)

通過tuple建立矩陣

in [25]: tuple=(1,2,3)

in [26]: result=np.mat(tuple)

in [27]: result

out[27]: matrix([[1, 2, 3]])

通過list建立矩陣

in [28]: list=[0,1,2]

in [29]: result=np.mat(list)

in [30]: result

out[30]: matrix([[0, 1, 2]])

當傳入物件只有超過二維,使用np.mat( )會報錯

in [31]: list=[[[3,4,5]]]

in [32]: error=np.mat(list)

valueerror: matrix must be 2-dimensional

2、矩陣的索引

in [36]: result

out[36]: matrix([[0, 1, 2]])

# 取第一行第一列的元素

in [37]: result[0,0]

out[37]: 0

# 取第一行所有列的元素

in [38]: result[0,:]

out[38]: matrix([[0, 1, 2]])

3、矩陣相乘(matrix的乘法是矩陣乘法)

in [44]: mat1=np.mat([[1,2,3],[4,5,6]])

in [45]: mat2=np.mat([[1,2],[3,4],[5,6]])

in [46]: mat1

out[46]:

matrix([[1, 2, 3],

[4, 5, 6]])

in [47]: mat2

out[47]:

matrix([[1, 2],

[3, 4],

[5, 6]])

in [48]: mat1*mat2

out[48]:

matrix([[22, 28],

[49, 64]])

元素乘法和矩陣乘法的使用函式

作用np.dot()

矩陣乘法。若為一維陣列,求出內積。若為二維陣列,則進行矩陣乘法。矩陣乘法的第乙個矩陣的列數(column)和第二個矩陣的行數(row)必須相同

np.mutiply()

元素乘法。以元素為單位乘以引數。若引數為陣列,維度會對應相乘。若引數為常數,則陣列的所有數值會對應發生變化。

建立陣列函式

作用np.empty()

建立指定形狀和dtype的未初始化陣列。

np.ones()

返回特定大小,以 1 填充的新陣列。

np.zeros()

返回特定大小,以 0 填充的新陣列。

屬性名稱

屬性內容

ndim

陣列軸的個數,在python的世界中,軸的個數被稱作秩

shape

陣列的維度。這是乙個指示陣列在每個維度上大小的整數元組。例如乙個n排m列的矩陣,它的shape屬性將是(2,3),這個元組的長度顯然是秩,即維度或者ndim屬性

size

陣列元素的總個數,等於shape屬性中元組元素的乘積。

dtype

乙個用來描述陣列中元素型別的物件,可以通過創造或指定dtype使用標準python型別。另外numpy提供它自己的資料型別。

itemsize

陣列中每個元素的位元組大小。例如,乙個元素型別為float64的陣列itemsiz屬性值為8(=64/8),又如,乙個元素型別為complex32的陣列item屬性為4(=32/8).

data

包含實際陣列元素的緩衝區,通常我們不需要使用這個屬性,因為我們總是通過索引來使用陣列中的元素。

t對陣列進行轉置

numpy 陣列和矩陣的乘法

1.當為array的時候,預設d f就是對應元素的乘積,multiply也是對應元素的乘積,dot d,f 會轉化為矩陣的乘積,dot點乘意味著相加,而multiply只是對應元素相乘,不相加 2.當為mat的時候,預設d f就是矩陣的乘積,multiply轉化為對應元素的乘積,dot d,f 為矩...

NumPy 陣列 Matrix矩陣

矩陣和陣列的區別,這篇介紹較為詳細 補充一點 numpy 陣列 np.array 可以生成n維陣列,即可以生成一維陣列 二維陣列 三維陣列等任意維數的陣列。數學上將一維陣列稱為向量,將二維陣列稱為矩陣。另外,可以將一般化之後的向量或矩陣等統稱為張量 tensor 一般將將二維陣列稱為 矩陣 將三維陣...

numpy 陣列 矩陣乘法運算

為了區分三種乘法運算的規則,具體分析如下 import numpy as np函式作用 陣列和矩陣對應位置相乘,輸出與相乘陣列 矩陣的大小一致 1.1陣列場景 a np.arange 1,5 reshape 2,2 aarray 1,2 3,4 b np.arange 0,4 reshape 2,2...