成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Numpy中的數組

開發 后端
NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

[[440906]]

Numpy定義

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。NumPy 通常與 SciPy(Scientific Python)和 Matplotlib(繪圖庫)一起使用,這種組合廣泛用于替代 MatLab,是一個強大的科學計算環境,有助于我們通過 Python 學習數據科學或者機器學習。

NumPy 主要應用包括:

機器學習模型:在編寫機器學習算法時,需要對矩陣進行各種數值計算。例如矩陣乘法、換位、加法等。NumPy提供了一個非常好的庫,用于簡單(在編寫代碼方面)和快速(在速度方面)計算。NumPy數組用于存儲訓練數據和機器學習模型的參數。

圖像處理和計算機圖形學:計算機中的圖像表示為多維數字數組。NumPy成為同樣情況下最自然的選擇。實際上,NumPy提供了一些優秀的庫函數來快速處理圖像。例如,鏡像圖像、按特定角度旋轉圖像等。

數學任務:NumPy對于執行各種數學任務非常有用,如數值積分、微分、內插、外推等。因此,當涉及到數學任務時,它形成了一種基于Python的MATLAB的快速替代。

為什么要用numpy

Python中提供了list容器,可以當作數組使用。但列表中的元素可以是任何對象,因此列表中保存的是對象的指針,這樣一來,為了保存一個簡單的列表[1,2,3]。就需要三個指針和三個整數對象。對于數值運算來說,這種結構顯然不夠高效。Python雖然也提供了array模塊,但其只支持一維數組,不支持多維數組(在TensorFlow里面偏向于矩陣理解),也沒有各種運算函數。因而不適合數值運算。NumPy的出現彌補了這些不足。(——摘自張若愚的《Python科學計算》)

詳情請參考:

https://numpy.org/doc/stable/index.html

NumPy安裝

因為numpy通常跟 scipy matplotlib一起使用,所以一起安裝三個模塊即可

pip3 install --user numpy scipy matplotlib

numpy array基礎使用

np數組的創建

  1. import numpy as np 
  2.  
  3. a = np.array([1,2,3,4]),#1行4列矩陣,即一維數組 
  4.  
  5. b = np.arange(4) # 1行4列矩陣,元素遞增1的一維數組 
  6.  
  7. c = np.array([[1,2],[3,4]]) # 2行2列矩陣,即二維數組d = np.arange(4).reshape((2,2)) #變換輸出 2行2列print (a) 
  8.  
  9. print(type(a)) #輸出a的類型print (b) 
  10.  
  11. print (c) 
  12.  
  13. print (d) 

 分別輸出:

  1. [1 2 3 4] 
  2.  
  3. [0 1 2 3] 
  4.  
  5. [[1 2] 
  6.  
  7. [3 4]] 
  8.  
  9. [[0 1] 
  10.  
  11. [2 3]] 

np數組的廣播

廣播(Broadcast)是 numpy 對不同形狀(shape)的數組進行數值計算的方式,對數組的算術運算通常在相應的元素上進行。如果兩個數組 a 和 b 形狀相同,即滿足a.shape == b.shape,那么 a*b 的結果就是 a 與 b 數組對應位相乘。這要求維數相同,且各維度的長度相同。

例如代碼

  1. a = np.array([1,2,3]) 
  2. b = np.array([10,20,30]) 
  3. c = a * b 
  4. print (c) 

 輸出

  1. [10 40 90] 

數組廣播相加操作

  1. a = np.array([[ 0, 0, 0], [10,10,10], [20,20,20], [30,30,30]]) #4x3 的二維數組 
  2. b = np.array([1,2,3]) 
  3. print(a + b) 

 輸出

  1. [[11 12 13] 
  2.  
  3. [2122 23]] 

 下面的圖片展示了數組 b 如何通過廣播來與數組 a 兼容。4x3 的二維數組與長為 3 的一維數組相加,等效于把數組 b 在二維上重復 4 次再運算:

詳解numpy中的數組(附源碼)

np數組的切片和索引

ndarray對象的內容可以通過索引或切片來訪問和修改,與 Python 中 list 的切片操作一樣。ndarray數組可以基于0-n的下標進行索引,切片對象可以通過內置的 slice 函數,并設置 start, stop 及 step 參數進行,從原數組中切割出一個新數組。相信大家理解python list切片相關操作,一定會對該部分的內容感到熟悉,這里舉幾個經典的例子:

基礎實例

  1. import numpy as np 
  2. a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9] 
  3. b = a[5] #下標5元素的值 
  4. c = np.array([[1,2,3],[3,4,5],[6,7,8]])print(b) 
  5. print(a[3:5]) #輸出下標3-5的值,注意這里可以輸出下限3,而不包括上限5 
  6. print(c[0,0]) #輸出第一行第一列的元素即[1,2,3]中的1 
  7. print (c[...,1]) #第2列元素print (c[1,...]) # 第2行元素print (c[...,1:]) # 第2列及剩下的所有元素 

 輸出

  1.  
  2. [3 4] 
  3.  
  4.  
  5. [2 4 7] 
  6.  
  7. [3 4 5] 
  8.  
  9. [[2 3] 
  10.  
  11. [45] 
  12.  
  13. [78]] 

布爾索引實例

我們可以通過一個布爾數組來索引目標數組。布爾索引通過布爾運算(如:比較運算符)來獲取符合指定條件的元素的數組。

  1. c = np.array([[1,2,3],[3,4,5],[6,7,8]]) 
  2. print (c[c > 3]) #打印出大于3的元素 

 輸出

  1. [4 5 6 7 8] 

numpy array遍歷

直接上代碼,普通一維數組

  1. arr = np.array([1, 2, 3]) 
  2. for x in arr: 
  3.     print(x) 

 輸出

  1.  
  2.  

 定義一個numpy的二維數組,二維以上的數組這里不做討論

  1. arr = np.array([[1, 2, 3], [4, 5, 6]]) 
  2. #遍歷 
  3. for x in arr: 
  4.      print(x) 

 輸出

  1. [1 2 3] 
  2.  
  3. [4 5 6] 

如果想一個一個地輸出每一個元素,可以這樣編寫代碼

  1. for x in arr: 
  2.      for y in x: 
  3.            print(y) 

 輸出

  1.  
  2.  
  3.  
  4.  
  5.  

 上面的方式比較麻煩,我們可以通過方法np.nditer實現一個一個地輸出每一個元素

  1. for x in np.nditer(arr): 
  2.      print(x) 

 輸出

  1.  
  2.  
  3.  
  4.  
  5.  

numpy array元素過濾

實例,在np數組中,過濾大于2的元素

  1. arr = np.array([1, 2, 3, 4]) 
  2. newarr = arr[arr >2] 
  3. print(newarr) 

 輸出

  1. [3 4] 

怎么樣,是不是非常非常簡單!

numpy array 關于字符的處理

如果np數組中存儲的是字符,如果相對字符元素進行相關操作,需要使用api —np.char

有這樣一個需求,把字符'0.01%','1.1%','1.21%' 中的%去掉,并把字符轉型為float類型。如何實現呢?代碼如下:

  1. b=np.array(['0.01%','1.1%','1.21%']) 
  2. newb=np.char.rstrip(b,'%').astype(float
  3. print(newb) 

 輸出

  1. [0.01 1.1 1.21] 

其中:

rstrip表示刪除某個字符

astype(float)表示把元素轉型為float

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-02-08 17:04:14

Python計算庫數學函數

2016-12-27 10:19:42

JavaScriptindexOf

2021-05-22 09:44:21

PythonNumpy數組Python矩陣

2010-07-13 09:50:55

Perl數組

2021-04-13 20:52:15

NumPy數組

2019-10-25 15:44:10

Pythonnumpy數組分析

2022-09-20 10:50:34

PandasNumPy

2009-10-09 14:10:23

.NET數組

2021-04-19 15:35:13

NumPy組合數組

2010-07-20 15:36:58

Perl語法

2017-11-20 05:41:41

數組矩陣NumPy

2023-12-27 12:12:35

NumPy函數數組

2025-05-08 10:20:00

NumPyPython

2009-09-02 11:02:57

C#動態數組

2013-05-08 10:36:07

JavaScriptJS詳解JavaScrip

2019-03-04 08:14:35

LinuxIDBash

2017-04-14 15:28:27

1-Numpy基礎多維數組

2019-07-16 07:52:49

NumPyPython機器學習

2021-08-10 13:17:31

NumPy內存Python

2021-08-10 09:04:43

內存視圖 NumPy
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产久视频 | 久久一区二区三区电影 | 久久99精品久久久久久 | 成人久久18免费网站 | www.成人.com| jizz在线免费观看 | 国产精品一区在线观看 | 亚洲精品视频播放 | 丝袜美腿一区二区三区动态图 | 国产精品日韩一区二区 | 欧美日韩综合一区 | 日韩三区 | 九九九视频精品 | 欧美亚洲一区二区三区 | 国产午夜精品视频 | 国产精品视频一区二区三区 | 国产精品69久久久久水密桃 | 91精品在线看 | 91久久久久久久久久久 | 久久久看 | 狠狠色综合网站久久久久久久 | 久久午夜电影 | 欧美综合一区二区 | 欧美专区在线 | 精品无码久久久久久久动漫 | 日韩国产中文字幕 | 91视频在线看 | 99精品一区 | 免费国产一区二区 | 久久99精品久久久久久国产越南 | 日韩在线视频网址 | 久久国产视频网站 | 国产一区日韩在线 | 男女羞羞免费网站 | 国产一区二区精品在线 | 久久99成人| av在线伊人| 中文字幕av一区二区三区 | 久久精品国产一区二区电影 | aaaa网站| 一级片在线免费播放 |