亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

NumPy 是 Python 科學(xué)計(jì)算庫(kù)中非常重要的庫(kù),主要用于處理大型多維數(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)入庫(kù),通常我們會(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)文章

  • Pandas中迭代DataFrame行的方法總結(jié)

    Pandas中迭代DataFrame行的方法總結(jié)

    Python是進(jìn)行數(shù)據(jù)分析的一種很好的語言,主要是因?yàn)橐詳?shù)據(jù)為中心的Python包的奇妙生態(tài)系統(tǒng),本文主要為大家介紹了如何在Pandas中迭代DataFrame中的行,有需要的可以參考下
    2023-09-09
  • python驗(yàn)證碼識(shí)別教程之利用滴水算法分割圖片

    python驗(yàn)證碼識(shí)別教程之利用滴水算法分割圖片

    這篇文章主要給大家介紹了關(guān)于python驗(yàn)證碼識(shí)別教程之利用滴水算法分割圖片的相關(guān)資料,文章中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Python利用ElementTree模塊處理XML的方法詳解

    Python利用ElementTree模塊處理XML的方法詳解

    ElementTree是python的XML處理模塊,它提供了一個(gè)輕量級(jí)的對(duì)象模,下面這篇文章就來給大家介紹了關(guān)于Python利用ElementTree模塊處理XML的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-08-08
  • python中pip安裝、升級(jí)以及升級(jí)固定的包

    python中pip安裝、升級(jí)以及升級(jí)固定的包

    我們知道python有大量的第三方庫(kù),這也是python的優(yōu)勢(shì)之一,pip就是python整的軟件包管理系統(tǒng),類似于Linux平臺(tái)的yum倉(cāng)庫(kù),下面這篇文章主要給大家介紹了關(guān)于python中pip安裝、升級(jí)以及升級(jí)固定包的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • 一文詳細(xì)NumPy中np.empty的用法

    一文詳細(xì)NumPy中np.empty的用法

    np.empty是NumPy庫(kù)中一個(gè)強(qiáng)大但潛在危險(xiǎn)的工具,本文主要介紹了一文詳細(xì)NumPy中np.empty的用法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定

    OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Python一行代碼識(shí)別增值稅發(fā)票實(shí)現(xiàn)示例

    Python一行代碼識(shí)別增值稅發(fā)票實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Python一行代碼識(shí)別增值稅發(fā)票實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • python中redis的安裝和使用

    python中redis的安裝和使用

    本文給大家介紹的是在Python中安裝和使用redis數(shù)據(jù)庫(kù)的方法以及簡(jiǎn)單示例,有需要的小伙伴可以參考下
    2016-12-12
  • 解決Python中導(dǎo)入自己寫的類,被劃紅線,但不影響執(zhí)行的問題

    解決Python中導(dǎo)入自己寫的類,被劃紅線,但不影響執(zhí)行的問題

    這篇文章主要介紹了解決Python中導(dǎo)入自己寫的類,被劃紅線,但不影響執(zhí)行的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換實(shí)例詳解

    python數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換實(shí)例詳解

    這篇文章主要介紹了python數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論