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

歡迎訪問 生活随笔!

生活随笔

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

python

01_NumPy介绍,什么是NumPy,Python应用、(NumPy、SciPy、Matplotlib相关网址)--来自菜鸟和NumPy中文网

發布時間:2024/9/27 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01_NumPy介绍,什么是NumPy,Python应用、(NumPy、SciPy、Matplotlib相关网址)--来自菜鸟和NumPy中文网 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:https://www.runoob.com/numpy/numpy-tutorial.html
https://www.numpy.org.cn/article/basics/understanding_numpy.html#什么是-numpy
(怕后面該網址沒有了,轉載作為自己的學習筆記)

1、NumPy教程

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

NumPy 的前身 Numeric 最早是由 Jim Hugunin 與其它協作者共同開發,2005 年,Travis Oliphant 在 Numeric 中結合了另一個同性質的程序庫 Numarray 的特色,并加入了其它擴展而開發了 NumPy。NumPy 為開放源代碼并且由許多協作者共同維護開發。

NumPy是一個運行速度非常快的數學庫,主要用于數組計算,包含:
?一個強大的N維數組對象ndarray
?廣播功能函數
?整合C/C++/Fortran代碼的工具
?線性代數、傅里葉函數、隨機數生成等功能

1.1、什么是Numpy?

NumPy是一個功能強大的Python庫,主要用于對多維數組執行計算。NumPy這個詞來源于兩個單詞-- Numerical和Python。NumPy提供了大量的庫函數和操作,可以幫助程序員輕松地進行數值計算。這類數值計算廣泛用于以下任務:

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

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

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

1.2、NumPy應用

NumPy 通常與 SciPy(Scientific Python)和 Matplotlib(繪圖庫)一起使用, 這種組合廣泛用于替代 MatLab,是一個強大的科學計算環境,有助于我們通過 Python 學習數據科學或者機器學習。

SciPy 是一個開源的 Python 算法庫和數學工具包。

SciPy 包含的模塊有最優化、線性代數、積分、插值、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算。

Matplotlib 是 Python 編程語言及其數值數學擴展包 NumPy 的可視化操作界面。它為利用通用的圖形用戶界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向應用程序嵌入式繪圖提供了應用程序接口(API)。

1.3、相關鏈接

  • NumPy 官網 http://www.numpy.org/
  • NumPy 源代碼:https://github.com/numpy/numpy
  • SciPy 官網:https://www.scipy.org/
  • SciPy 源代碼:https://github.com/scipy/scipy
  • Matplotlib 官網:https://matplotlib.org/
  • Matplotlib 源代碼:https://github.com/matplotlib/matplotlib

1.4 NumPy安裝

在你的計算機上安裝NumPy的最快也是最簡單的方法是在shell上使用以下命令:

pip install numpy

這將在你的計算機上安裝最新/最穩定的NumPy版本。通過PIP安裝是安裝任何Python軟件包的最簡單方法。現在讓我們來談談NumPy中最重要的概念,NumPy數組。

如果是Anacanda中使用conda安裝的話,命令是:

conda install numpy

1.5 NumPy中的數組

NumPy提供的最重要的數據結構是一個稱為NumPy數組的強大對象。NumPy數組是通常的Python數組的擴展。NumPy數組配備了大量的函數和運算符,可以幫助我們快速編寫上面討論過的各種類型計算的高性能代碼。讓我們看看如何快速定義一維NumPy數組:

# -*- coding: UTF-8 -*-import numpy as np my_array = np.array([1,2,3,4,5]) print(my_array)

最后,運行結果如下:

Python 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] Type 'copyright', 'credits' or 'license' for more information IPython 7.8.0 -- An enhanced Interactive Python. Type '?' for help. PyDev console: using IPython 7.8.0 Python 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] on win32 In[2]: runfile('E:/workspace/numpy/numpy/01_numpy數組.py', wdir='E:/workspace/numpy/numpy') [1 2 3 4 5]

在上面的簡單示例中,我們首先使用import numpy作為np導入NumPy庫。然后,我們創建了一個包含5個整數的簡單NumPy數組,然后我們將其打印出來。繼續在自己的機器上試一試。在看 “NumPy安裝” 部分下面的步驟的時候,請確保已在計算機中安裝了NumPy。

現在讓我們看看我們可以用這個特定的NumPy數組能做些什么。

print(my_array.shape)

它會打印我們創建的數組的形狀:(5,)。意思就是my_array是一個包含5個元素的數組。
我們也可以打印各個元素。就像普通的Python數組一樣,NumPy數組的起始索引編號為0.

print(my_array[0]) print(my_array[1])

運行結果是:

1 2

上述命令將分別在終端上打印1和2.我們還可以修改NumPy數組的元素。例如,加入我們編寫以下2個命令:

my_array[0] = -1 print(my_array)

我們將在屏幕上看到:[-1 2 3 4 5]
現在假設,我們要創建一個長度為5的NumPy數組,但所有元素都為0,我們可以這樣做嗎?是的。NumPy提供了一種簡單的方法來做同樣的事情。

my_new_array = np.zeros((5)) print(my_new_array)

我們將看到輸出了[0. 0. 0. 0. 0.]。與np.zeros類似,我們也有np.ones。如果我們想創建一個隨機值數組怎么辦?

my_random_array = np.random.random((5)) print(my_random_array)

我們得到的輸出看起來像 [0.22051844 0.35278286 0.11342404 0.79671772 0.62263151] 這樣的數據。你獲得的輸出可能會有所不同,因為我們使用的是隨機函數,它為每個元素分配0到1之間的隨機值。

現在讓我們看看如何使用NumPy創建二維數組。

my_2d_array = np.zeros((2,3)) print(my_2d_array)

這里是:

[[0. 0. 0.][0. 0. 0.]]

猜猜以下代碼的輸出結果如何:

my_2d_array_new = np.ones((2,4)) print(my_2d_array_new)

這里是:

[[1. 1. 1. 1.][1. 1. 1. 1.]]

基本上,當你使用函數np.zeros()或np.ones()時,你可以指定討論數組大小的元組。在上面的兩個例子中,我們使用以下元組,(2, 3) 和(2, 4) 分別表示2行,3列和4列。像上面那樣的多維數組可以用 my_array[i][j] 符號來索引,其中i表示行號,j表示列號。i和j都從0開始。

my_array = np.array([[4,5],[6,1]]) print(my_array) print(my_array[0][1])

輸出結果是:

[[4 5][6 1]] 5

上面的代碼片段的輸出是5,因為它是索引0行和索引1列中的元素。
你還可以按如下方式打印my_array的形狀:

print(my_array.shape)

輸出為(2,2),表示數組中有2行2列。

NumPy提供了一種提取多維數組的列/列的強大方法。例如,考慮我們上面定義的my_array的例子。

[[4,5],[6,1]]

假設,我們想從中提取第二列(索引1)的所有元素。在這里,我們肉眼可以看見,第二列由兩個元素組成:5和1。為此,我們執行以下操作:

my_array_column_2 = my_array[:,1] print(my_array_column_2)

注意,我們使用了冒號(:)而不是行號,而對于列號,我們使用了值1,最終輸出是:[5, 1]。

我們可以類似地從多維NumPy數組中提取一行。現在,讓我們看看NumPy在多個數組上執行計算時提供的強大功能。

1.6 NumPy中的數組操作

使用NumPy,你可以輕松在數組上執行數學運算。例如,你可以添加NumPy數組,你可以減去它們,你可以將它們相乘,甚至可以將它們分開。以下是一些例子:

# -*- coding: UTF-8 -*-import numpy as np a = np.array([[1.0, 2.0], [3.0, 4.0]]) b = np.array([[5.0, 6.0], [7.0, 8.0]]) sum = a + b difference = a - b product = a * b quotient = a / bprint("Sum = \n",sum) print("Difference = \n", difference) print("Product = \n", product) print("Quotient = \n", quotient)

運行結果:

Sum = [[ 6. 8.][10. 12.]] Difference = [[-4. -4.][-4. -4.]] Product = [[ 5. 12.][21. 32.]] Quotient = [[0.2 0.33333333][0.42857143 0.5 ]]

如你所見,乘法運算符執行逐元素乘法而不是矩陣乘法。要執行矩陣乘法,你可以執行以下操作:

matrix_product = a.dot(b) print("Matrix Product = ",matrix_product)

運行結果:

Matrix Product = [[19. 22.][43. 50.]]

總結

以上是生活随笔為你收集整理的01_NumPy介绍,什么是NumPy,Python应用、(NumPy、SciPy、Matplotlib相关网址)--来自菜鸟和NumPy中文网的全部內容,希望文章能夠幫你解決所遇到的問題。

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