最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳細(xì)介紹numpy在python中的用法

 更新時(shí)間:2025年01月03日 10:22:36   作者:科技追蹤者  
這篇文章主要介紹了numpy在python中的用法,NumPy是Python科學(xué)計(jì)算庫,主要用于處理大型多維數(shù)組和矩陣運(yùn)算,它提供了多種函數(shù)進(jìn)行數(shù)組操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

NumPy 是 Python 科學(xué)計(jì)算庫中非常重要的庫,主要用于處理大型多維數(shù)組和矩陣運(yùn)算。它提供了大量數(shù)學(xué)函數(shù)來操作這些數(shù)組。 NumPy 的核心是 ndarray 對(duì)象,該對(duì)象是一個(gè)多維數(shù)組,可以存儲(chǔ)同類型的數(shù)據(jù)。

下面是 NumPy 的詳細(xì)用法和功能介紹:

1. 導(dǎo)入NumPy

在使用 NumPy 之前,需要先導(dǎo)入庫,通常我們會(huì)將 NumPy 以 np 作為別名:

import numpy as np

2. 創(chuàng)建數(shù)組

NumPy 中的數(shù)組稱為 ndarray,可以通過多種方式創(chuàng)建數(shù)組:

a) 使用 array() 創(chuàng)建數(shù)組

# 從Python列表創(chuàng)建數(shù)組
arr = np.array([1, 2, 3, 4])
print(arr)  # 輸出: [1 2 3 4]

# 創(chuàng)建多維數(shù)組
arr_2d = np.array([[1, 2], [3, 4]])
print(arr_2d)  # 輸出: [[1 2] [3 4]]

b) 使用 zeros()、ones() 和 full() 創(chuàng)建特定值數(shù)組

# 創(chuàng)建一個(gè)全為0的數(shù)組
zeros_arr = np.zeros((2, 3))
print(zeros_arr)  # 輸出:[[0. 0. 0.] [0. 0. 0.]]

# 創(chuàng)建一個(gè)全為1的數(shù)組
ones_arr = np.ones((2, 3))
print(ones_arr)  # 輸出:[[1. 1. 1.] [1. 1. 1.]]

# 創(chuàng)建一個(gè)指定數(shù)值的數(shù)組
full_arr = np.full((2, 2), 5)
print(full_arr)  # 輸出:[[5 5] [5 5]]

c) 使用 arange() 和 linspace() 創(chuàng)建序列數(shù)組

# 創(chuàng)建一個(gè)等差序列數(shù)組
arr_range = np.arange(0, 10, 2)
print(arr_range)  # 輸出:[0 2 4 6 8]

# 創(chuàng)建一個(gè)線性間隔數(shù)組
arr_linspace = np.linspace(0, 1, 5)
print(arr_linspace)  # 輸出:[0.   0.25 0.5  0.75 1.  ]

3. 數(shù)組屬性

ndarray 對(duì)象具有多種屬性,可以獲取數(shù)組的信息:

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

print(arr.shape)  # 數(shù)組的形狀 (2, 3)
print(arr.size)   # 數(shù)組中的元素?cái)?shù)量 6
print(arr.ndim)   # 數(shù)組的維度 2
print(arr.dtype)  # 數(shù)組元素的數(shù)據(jù)類型 int64

4. 數(shù)組索引和切片

NumPy 數(shù)組支持多維索引和切片操作。

a) 一維數(shù)組索引

arr = np.array([1, 2, 3, 4, 5])
print(arr[0])   # 輸出第一個(gè)元素:1
print(arr[-1])  # 輸出最后一個(gè)元素:5

b) 多維數(shù)組索引

arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d[0, 2])  # 輸出第一行第三列的元素:3
print(arr_2d[1, -1]) # 輸出第二行最后一個(gè)元素:6

c) 切片

# 一維數(shù)組切片
arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4])  # 輸出: [2 3 4]

# 多維數(shù)組切片
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr_2d[0:2, 1:3])  # 輸出:[[2 3] [5 6]]

5. 數(shù)學(xué)運(yùn)算

NumPy 可以對(duì)數(shù)組進(jìn)行廣播機(jī)制下的運(yùn)算。

a) 數(shù)組的基本運(yùn)算

arr = np.array([1, 2, 3])

print(arr + 2)  # 輸出:[3 4 5]
print(arr * 3)  # 輸出:[3 6 9]
print(arr ** 2) # 輸出:[1 4 9]

b) 數(shù)組之間的運(yùn)算

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

print(arr1 + arr2)  # 輸出:[5 7 9]
print(arr1 * arr2)  # 輸出:[4 10 18]

c) 通用函數(shù) (Universal Functions)

NumPy 提供了許多通用的數(shù)學(xué)函數(shù),可以應(yīng)用于數(shù)組的每個(gè)元素,例如 sin()、exp()、sqrt() 等。

arr = np.array([1, 2, 3])
print(np.sin(arr))  # 輸出:數(shù)組每個(gè)元素的正弦值
print(np.exp(arr))  # 輸出:數(shù)組每個(gè)元素的指數(shù)值
print(np.sqrt(arr)) # 輸出:數(shù)組每個(gè)元素的平方根

6. 數(shù)組的形狀操作

NumPy 提供了許多工具來改變數(shù)組的形狀。

a) reshape() 改變數(shù)組形狀

arr = np.array([[1, 2, 3], [4, 5, 6]])
reshaped_arr = arr.reshape((3, 2))
print(reshaped_arr)
# 輸出:
# [[1 2]
#  [3 4]
#  [5 6]]

b) 數(shù)組轉(zhuǎn)置

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.T)
# 輸出:
# [[1 4]
#  [2 5]
#  [3 6]]

7. 數(shù)組的合并和分割

NumPy 支持對(duì)數(shù)組的合并和分割操作。

a) 數(shù)組的合并

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

# 垂直合并
vstack_arr = np.vstack((arr1, arr2))
print(vstack_arr)  # 輸出:[[1 2] [3 4] [5 6]]

# 水平合并
hstack_arr = np.hstack((arr1, arr2.T))
print(hstack_arr)  # 輸出:[[1 2 5] [3 4 6]]

b) 數(shù)組的分割

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

# 垂直分割
vsplit_arr = np.vsplit(arr, 2)
print(vsplit_arr)  # 輸出兩個(gè)2x3的數(shù)組

# 水平分割
hsplit_arr = np.hsplit(arr, 3)
print(hsplit_arr)  # 輸出三個(gè)2x1的數(shù)組

8. 布爾索引和條件過濾

NumPy 支持布爾條件篩選和索引操作。

arr = np.array([1, 2, 3, 4, 5])
print(arr[arr > 3])  # 輸出:[4 5]

# 條件賦值
arr[arr > 3] = 0
print(arr)  # 輸出:[1 2 3 0 0]

9. 常用的統(tǒng)計(jì)函數(shù)

NumPy 提供了豐富的統(tǒng)計(jì)函數(shù),方便對(duì)數(shù)組進(jìn)行統(tǒng)計(jì)計(jì)算。

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

print(np.mean(arr))  # 平均值:3.0
print(np.sum(arr))   # 總和:15
print(np.std(arr))   # 標(biāo)準(zhǔn)差:1.414
print(np.min(arr))   # 最小值:1
print(np.max(arr))   # 最大值:5

10. 隨機(jī)數(shù)生成

NumPy 的 random 模塊提供了生成隨機(jī)數(shù)的功能。

# 生成一個(gè)[0, 1)之間的隨機(jī)浮點(diǎn)數(shù)
print(np.random.rand())

# 生成一個(gè)服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)
print(np.random.randn())

# 生成一個(gè)指定范圍內(nèi)的隨機(jī)整數(shù)
print(np.random.randint(0, 10, (3, 3)))  # 輸出一個(gè)3x3的隨機(jī)整數(shù)矩陣

11. 廣播機(jī)制

NumPy 具有廣播(broadcasting)機(jī)制,是指當(dāng)操作的兩個(gè)數(shù)組形狀不同,但其中一個(gè)數(shù)組的形狀可以通過重復(fù)某些維度的元素來匹配另一個(gè)數(shù)組的形狀時(shí),NumPy 會(huì)自動(dòng)進(jìn)行元素?cái)U(kuò)展,執(zhí)行操作。

# 一個(gè) 1x3 數(shù)組和一個(gè) 3x1 數(shù)組相加
a = np.array([1, 2, 3])
b = np.array([[1], [2], [3]])

# 廣播機(jī)制:將b廣播為 [1, 2, 3],然后執(zhí)行加法
result = a + b
print(result)
# 輸出:
# [[2 3 4]
#  [3 4 5]
#  [4 5 6]]

12. 數(shù)組的矩陣運(yùn)算

NumPy 中的矩陣運(yùn)算功能包括矩陣乘法、矩陣轉(zhuǎn)置、求逆等常見的線性代數(shù)操作。特別適用于科學(xué)計(jì)算和機(jī)器學(xué)習(xí)中使用的線性代數(shù)方法。

a) 矩陣乘法

@ 符號(hào)或 np.dot() 函數(shù)可用于矩陣乘法。

# 定義兩個(gè)矩陣
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 矩陣乘法
C = A @ B
print(C)
# 輸出:
# [[19 22]
#  [43 50]]

# 使用dot函數(shù)
D = np.dot(A, B)
print(D)
# 輸出結(jié)果與上面相同

b) 矩陣轉(zhuǎn)置

# 矩陣轉(zhuǎn)置
A_T = A.T
print(A_T)
# 輸出:
# [[1 3]
#  [2 4]]

d) 計(jì)算行列式

使用 np.linalg.det() 計(jì)算矩陣的行列式。

A = np.array([[1, 2], [3, 4]])
det_A = np.linalg.det(A)
print(det_A)  # 輸出:-2.0

e) 特征值和特征向量

使用 np.linalg.eig() 來計(jì)算矩陣的特征值和特征向量。

A = np.array([[1, 2], [3, 4]])
eigenvalues, eigenvectors = np.linalg.eig(A)

print("特征值:", eigenvalues)
print("特征向量:", eigenvectors)
# 輸出:
# 特征值: [-0.37228132  5.37228132]
# 特征向量:
# [[-0.82456484 -0.41597356]
#  [ 0.56576746 -0.90937671]]

12. 數(shù)組的排序和條件篩選

a) 排序

使用 np.sort() 函數(shù)對(duì)數(shù)組進(jìn)行排序。該函數(shù)會(huì)返回一個(gè)排序后的數(shù)組,而不會(huì)修改原數(shù)組。

a = np.array([3, 1, 2, 4])
sorted_a = np.sort(a)
print(sorted_a)  # 輸出:[1 2 3 4]

b) 條件篩選

NumPy 提供了靈活的條件篩選操作,可以用布爾數(shù)組來選擇滿足條件的元素。

# 創(chuàng)建一個(gè)數(shù)組
a = np.array([1, 2, 3, 4, 5])

# 篩選出大于2的元素
filtered_a = a[a > 2]
print(filtered_a)  # 輸出:[3 4 5]

# 使用where條件篩選
b = np.where(a > 2, a, -1)  # 大于2的保持原值,否則設(shè)為-1
print(b)  # 輸出:[-1 -1  3  4  5]

總結(jié) 

到此這篇關(guān)于numpy在python中用法的文章就介紹到這了,更多相關(guān)python中numpy用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python實(shí)現(xiàn)監(jiān)控進(jìn)程是否有病毒

    使用Python實(shí)現(xiàn)監(jiān)控進(jìn)程是否有病毒

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)監(jiān)控進(jìn)程是否有病毒,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • Python實(shí)現(xiàn)人臉識(shí)別的詳細(xì)圖文教程

    Python實(shí)現(xiàn)人臉識(shí)別的詳細(xì)圖文教程

    人臉識(shí)別是人工智能的一個(gè)重要應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)人臉識(shí)別的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python中pypdf庫處理PDF文件的詳細(xì)說明和常見用法

    Python中pypdf庫處理PDF文件的詳細(xì)說明和常見用法

    這篇文章主要介紹了Python中pypdf庫處理PDF文件的詳細(xì)說明和常見用法,?pypdf是Python庫,用于處理PDF文件,支持讀取、修改、合并、拆分、加密等操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-05-05
  • 使用Python構(gòu)建智能BAT文件生成器的完美解決方案

    使用Python構(gòu)建智能BAT文件生成器的完美解決方案

    這篇文章主要為大家詳細(xì)介紹了如何使用 wxPython 構(gòu)建一個(gè)智能的 BAT 文件生成器,它不僅能夠?yàn)?nbsp;Python 腳本生成啟動(dòng)腳本,還提供了完整的文件管理和數(shù)據(jù)庫存儲(chǔ)功能,感興趣的小伙伴可以了解下
    2025-07-07
  • Python進(jìn)行時(shí)間單位換算的完全指南

    Python進(jìn)行時(shí)間單位換算的完全指南

    在現(xiàn)代計(jì)算系統(tǒng)中,時(shí)間換算是最基礎(chǔ)也是最關(guān)鍵的技術(shù)之一,Python提供了強(qiáng)大的時(shí)間處理工具鏈,但許多開發(fā)者未能充分利用其全部功能,下面小編就來和大家深入講解下
    2025-08-08
  • python基礎(chǔ)教程之自定義函數(shù)介紹

    python基礎(chǔ)教程之自定義函數(shù)介紹

    這篇文章主要介紹了python基礎(chǔ)教程之自定義函數(shù)介紹,本文講解了python中函數(shù)的定義方法、函數(shù)參數(shù)的定義方法,需要的朋友可以參考下
    2014-08-08
  • Python數(shù)據(jù)結(jié)構(gòu)之哈夫曼樹定義與使用方法示例

    Python數(shù)據(jù)結(jié)構(gòu)之哈夫曼樹定義與使用方法示例

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)之哈夫曼樹定義與使用方法,結(jié)合具體實(shí)例形式分析了Python哈夫曼樹的原理、定義及簡(jiǎn)單使用方法,需要的朋友可以參考下
    2018-04-04
  • Python學(xué)習(xí)小技巧之列表項(xiàng)的拼接

    Python學(xué)習(xí)小技巧之列表項(xiàng)的拼接

    這篇文章主要給大家介紹了Python學(xué)習(xí)小技巧之列表項(xiàng)的拼接的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • Python大數(shù)據(jù)之使用lxml庫解析html網(wǎng)頁文件示例

    Python大數(shù)據(jù)之使用lxml庫解析html網(wǎng)頁文件示例

    這篇文章主要介紹了Python大數(shù)據(jù)之使用lxml庫解析html網(wǎng)頁文件,結(jié)合實(shí)例形式分析了Python大數(shù)據(jù)操作中使用lxml庫解析html網(wǎng)頁具體步驟及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • Django文件存儲(chǔ) 自己定制存儲(chǔ)系統(tǒng)解析

    Django文件存儲(chǔ) 自己定制存儲(chǔ)系統(tǒng)解析

    這篇文章主要介紹了Django文件存儲(chǔ) 自己定制存儲(chǔ)系統(tǒng)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

白城市| 无为县| 东至县| 武冈市| 蒙自县| 当阳市| 南通市| 揭阳市| 黎城县| 沂南县| 康定县| 城固县| 湖北省| 合江县| 偏关县| 大安市| 洪江市| 洞口县| 防城港市| 芮城县| 磐安县| 大冶市| 当阳市| 双流县| 昭平县| 卫辉市| 舞钢市| 夏津县| 松阳县| 韶山市| 东乡县| 东阳市| 怀柔区| 赤城县| 房产| 屏边| 罗平县| 汕头市| 长岭县| 陕西省| 许昌县|