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...