日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量

發布時間:2025/3/12 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python numpy常用操作

Numpy基本操作

# 導入numpy import numpy as np # 生成numpy數組 x = np.array([1.0, 2.0, 3.0]) print(x) # [1. 2. 3.] print(type(x)) # <class 'numpy.ndarray'> # Numpy的算術運算 x = np.array([1.0, 2.0, 3.0]) y = np.array([2.0, 4.0, 6.0]) print(x+y) #[3. 6. 9.] print(x-y) #[-1. -2. -3.] print(x*y) # [ 2. 8. 18.] print(x/y) #[0.5 0.5 0.5] # Numpy的多維數組 A = np.array([[1, 2], [3, 4]]) print(A) #[[1 2] # [3 4]] # 矩陣A的形狀可以通過shape查看 print(A.shape)#(2, 2) # 矩陣A的元素類型可以通過dtype查看 print(A.dtype)#int32 # 矩陣的算數運算: B = np.array([[3, 0], [0, 6]]) print(A+B) print(A*B) print(A*10) ''' [[ 4 2][ 3 10]][[ 3 0][ 0 24]][[10 20][30 40]] ''' # 廣播:形狀不同的數組之間也可以進行運算 A = np.array([[1, 2], [3, 4]]) B = np.array([10, 20]) print(A*B) ''' [[10 40][30 80]] ''' # 訪問元素 x = np.array([[51, 55], [14, 19], [0, 4]]) print(x) ''' [[51 55][14 19][ 0 4]] '''# 訪問第0行 print(x[0])#[51 55] # 訪問(0,1)的元素 print(x[0][1])#55 # 使用數組訪問各個元素 # 將x轉換為一維數組 x = x.flatten() print(x)#[51 55 14 19 0 4] # 獲取索引為0,2,4的元素 print(x[np.array([0, 2, 4])])#[51 14 0]# 取出大于15的元素 print(x[x > 15])#[51 55 19]

Numpy 多維數組、矩陣相乘、矩陣乘以向量

第一個例子:

import numpy as npif __name__ == '__main__':A=np.array([[1,2],[3,4]])B=np.array([[5,6],[7,8]])print(B)print(np.ndim(B)) # 表示B是二維數組,也就是說有兩列print(B.shape) # 輸出B的形狀,幾行幾列C=np.dot(A,B) # 矩陣相乘,需要滿足矩陣乘法原則print(C)

輸出:

[[5 6][7 8]] 2 (2, 2) [[19 22][43 50]]

第二個例子:

import numpy as npif __name__ == '__main__':A=np.array([1,2]) # 2*1B=np.array([[1,3,5],[2,4,6]]) #2*3print(A)print(np.ndim(A))print(A.shape)print(B)print(np.ndim(B))print(B.shape)C=np.dot(A,B) #1*3print(C)print(np.ndim(C))print(C.shape)

結果:

[1 2] 1 (2,) [[1 3 5][2 4 6]] 2 (2, 3) [ 5 11 17] 1 (3,)

第三個例子:

import numpy as npif __name__ == '__main__':A=np.array([[1,2],[3,4],[5,6]]) # 3*2B=np.array([[7],[8]]) #2*1print(A)print(np.ndim(A))print(A.shape)print(B)print(np.ndim(B))print(B.shape)C=np.dot(A,B) #3*1print(C)print(np.ndim(C))print(C.shape)

結果:

[[1 2][3 4][5 6]] 2 (3, 2) [[7][8]] 2 (2, 1) [[23][53][83]] 2 (3, 1)

第四個例子:

import numpy as npif __name__ == '__main__':A=np.array([[1,2],[3,4],[5,6]]) # 3*2B=np.array([7,8])# 2*1print(A)print(np.ndim(A))print(A.shape)print(B)print(np.ndim(B))print(B.shape)C=np.dot(A,B) print(C)print(np.ndim(C))print(C.shape)

結果

[[1 2][3 4][5 6]] 2 (3, 2) [7 8] 1 (2,) [23 53 83] 1 (3,)

根據這里面2、3、4例子,可以總結出一個簡便的理解思路。

一個矩陣乘一個向量,不用管那個向量究竟是行向量還是列向量。也不要管輸出的向量是行向量還是列向量。因為我們的目的不是分辨它的形式是如何,而是要得到新向量里面的元素,所以就忽略它的存儲形式。事實上,如果你非要弄清楚它的存儲形式,那么你將被numpy的語法繞暈,把時間浪費到不重要的地方。

如果矩陣A是三行兩列,一維向量B(也就是數組)里面有x個數,

x=矩陣的行的話,那么A乘以B就調用np.dot(B,A)

X=矩陣的列的話,那么A乘以B就調用np.dot(A,B)

用圖來理解:

總結

以上是生活随笔為你收集整理的python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。