iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0

前言

在昨天的教學中,我們已經深入了解了Python的基本語法。今天來分享一個極為重要且廣泛使用的函式庫,那就是NumPy。NumPy是Python中用於數值運算的核心程式庫之一,它提供了高效的數據結構和數學函數,專為處理數值數據而設計。使用NumPy能夠更輕鬆地進行數據處理、科學計算和數學建模等任務。讓我們一起開始學習NumPy的基礎知識,並探索它的強大功能吧!

正文

NumPy是Python語言的一個擴充程式庫。支援高階大規模的多維陣列與矩陣運算,此外也針對陣列運算提供大量的數學函數函式庫,是Python中最受歡迎的數值計算程式庫之一,它擁有以下主要特點:

  1. 多維陣列:NumPy引入了多維陣列(N-dimensional arrays),這是它最重要的資料結構之一。這使得NumPy特別適用於處理各種數據,從一維序列到多維數據集。
  2. 數學函數:NumPy提供了大量的數學函數,包括基本運算(加、減、乘、除等)、統計運算(平均值、標準差、相關性等)以及線性代數運算(矩陣乘法、特徵值分解等)。這使得在數據分析、機器學習和科學計算中能夠方便地執行各種計算。
  3. 整合性:NumPy與其他Python程式庫無縫整合,特別是與科學計算和數據分析相關的資料庫,如SciPy、Pandas和Matplotlib等。

建立陣列

首先我們先介紹如何建立陣列,numpy陣列有很多種建立的方式,其中最常見的就是使用np.array()

以下舉個例子:

import numpy as np

number = [1, 2, 3, 4, 5]
a = np.array(number)
print(a)

這就是最簡單的陣列啦,除此之外也支持許多特別的陣列,像是全零陣列、全一陣列、單位矩陣等都可以實現歐

import numpy as np

# 全零陣列
a= np.zeros(5)

# 全一陣列
b= np.ones(3)

# 3x3的單位矩陣
c= np.eye(3)

print("zero_array is")
print(a)
print("ones_array is")
print(b)
print("identity_matrix is")
print(c)

顯示的結果就會長這樣

https://ithelp.ithome.com.tw/upload/images/20230913/20161913B4VZlTzUgI.png

那如果想建立一個範圍內的數字序列,則可以使用np.arrange()

import numpy as np

a= np.arange(10)
print(a)

這樣就可以創建一個從0到9的陣列啦

除此之外也有生成隨機數的np.random.rand()等其他功能,是不是非常方便呢??

基本陣列操作

存取元素

numpy可以使用索引存取陣列中的元素,記得是從0開始:

import numpy as np

a= np.array([1, 2, 3, 4, 5])

element = a[2]
print(element)

也可以使用切片從陣列中選取多個元素:

import numpy as np

a= np.array([1, 2, 3, 4, 5])
b= a[1:4]
print(b)

這樣他就會選取陣列中的2、3、4了

形狀和維度

如果想要獲取陣列的形狀(也就是維度)時,則可以使用shape:

import numpy as np

a= np.array([[1, 2, 3], [4, 5, 6]])

shape = a.shape
print(shape)

這樣他就會顯示出(2、3)表示陣列的形狀

而reshape則可以將陣列改變成你要的形狀

import numpy as np

my_array = np.array([1, 2, 3, 4, 5, 6])

# 重塑陣列為2x3的形狀
reshaped_array = my_array.reshape(2, 3)
print(reshaped_array)

他就會將陣列改變成[[1 2 3][4 5 6]]的樣子了

總結

以上就是小弟我今天分享numpy的基本技巧,如果想要更加瞭解numpy的話可以參考底下的連結,明天將會進入我們的重頭戲,那我們明天見!

參考連結:維基百科


上一篇
[DAY03]Python基礎語法
下一篇
[DAY05]關於深度學習
系列文
Autoencoder與GAN:生成與重建的完美結合30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言