国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(十二):NumPy詳解:4、數(shù)組廣播;5、排序操作

這篇具有很好參考價值的文章主要介紹了【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(十二):NumPy詳解:4、數(shù)組廣播;5、排序操作。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、前言

二、實驗環(huán)境

三、NumPy

0、多維數(shù)組對象(ndarray)

多維數(shù)組的屬性

1、創(chuàng)建數(shù)組

2、數(shù)組操作

3、數(shù)組數(shù)學(xué)

4、數(shù)組廣播

5、排序操作

1. np.sort()?函數(shù)

2. np.argsort()?函數(shù)

3. ndarray.sort()?方法

4. 按列或行排序

5. np.lexsort()?函數(shù)

6. np.partition()?函數(shù)

7. np.argpartition()?函數(shù)

8. ndarray.argsort()?方法


一、前言

????????Python是一種高級編程語言,由Guido van Rossum于1991年創(chuàng)建。它以簡潔、易讀的語法而聞名,并且具有強大的功能和廣泛的應(yīng)用領(lǐng)域。Python具有豐富的標(biāo)準(zhǔn)庫和第三方庫,可以用于開發(fā)各種類型的應(yīng)用程序,包括Web開發(fā)、數(shù)據(jù)分析、人工智能、科學(xué)計算、自動化腳本等。

????????Python本身是一種偉大的通用編程語言,在一些流行的庫(numpy,scipy,matplotlib)的幫助下,成為了科學(xué)計算的強大環(huán)境。本系列將介紹Python編程語言和使用Python進(jìn)行科學(xué)計算的方法,主要包含以下內(nèi)容:

  • Python:基本數(shù)據(jù)類型、容器(列表、元組、集合、字典)、函數(shù)、類
  • Numpy:數(shù)組創(chuàng)建、數(shù)組操作、數(shù)組數(shù)學(xué)、廣播
  • Matplotlib:繪圖風(fēng)格和類型、圖表自定義、多子圖和布局
  • IPython:創(chuàng)建筆記本、典型工作流程

?二、實驗環(huán)境

matplotlib 3.5.3
numpy 1.21.6
python 3.7.16
  • 運行下述命令檢查Python版本
 python --version 
  • 運行下述代碼檢查Python、NumPy、Matplotlib版本
import sys
import numpy as np
import matplotlib

print("Python 版本:", sys.version)
print("NumPy 版本:", np.__version__)
print("matplotlib 版本:", matplotlib.__version__)

【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(十二):NumPy詳解:4、數(shù)組廣播;5、排序操作,深度學(xué)習(xí),Python,深度學(xué)習(xí),python,numpy

三、NumPy

????????NumPy(Numerical Python)是一個用于科學(xué)計算的Python庫。它提供了一個強大的多維數(shù)組對象(ndarray),用于進(jìn)行高效的數(shù)值運算和數(shù)據(jù)處理。Numpy的主要功能包括:

  1. 多維數(shù)組:Numpy的核心是ndarray對象,它是一個多維數(shù)組,可以存儲同類型的元素。這使得Numpy非常適合處理向量、矩陣和其他多維數(shù)據(jù)結(jié)構(gòu)。

  2. 數(shù)學(xué)函數(shù):Numpy提供了許多常用的數(shù)學(xué)函數(shù),如三角函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)等。這些函數(shù)可以直接應(yīng)用于整個數(shù)組,而無需編寫循環(huán)。

  3. 廣播(Broadcasting):Numpy支持不同形狀的數(shù)組之間的運算,通過廣播機制,可以對形狀不同的數(shù)組進(jìn)行逐元素的操作,而無需顯式地編寫循環(huán)。

  4. 線性代數(shù)運算:Numpy提供了豐富的線性代數(shù)運算函數(shù),如矩陣乘法、求解線性方程組、特征值計算等。

  5. 隨機數(shù)生成:Numpy包含了用于生成各種概率分布的隨機數(shù)的函數(shù),如均勻分布、正態(tài)分布、泊松分布等。

  6. 數(shù)據(jù)操作:Numpy提供了很多用于操作數(shù)組的函數(shù),如切片、索引、排序、去重等。

????????Numpy廣泛應(yīng)用于科學(xué)計算、數(shù)據(jù)分析、機器學(xué)習(xí)等領(lǐng)域。它的高效性和便捷性使得它成為Python數(shù)據(jù)科學(xué)生態(tài)系統(tǒng)中不可或缺的組成部分。

0、多維數(shù)組對象(ndarray)

????????NumPy的ndarray對象是NumPy庫中最重要的對象之一,也是進(jìn)行科學(xué)計算的核心數(shù)據(jù)結(jié)構(gòu)。ndarray代表了一個多維的數(shù)組,可以存儲相同類型的元素。

多維數(shù)組的屬性

  • ndarray.shape:返回表示數(shù)組形狀的元組,例如(2, 3)表示2行3列的數(shù)組。
  • ndarray.dtype:返回數(shù)組中元素的數(shù)據(jù)類型,例如intfloat、bool等。
  • ndarray.ndim:返回數(shù)組的維度數(shù),例如1表示一維數(shù)組,2表示二維數(shù)組。

1、創(chuàng)建數(shù)組

【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(九):NumPy詳解:1、創(chuàng)建數(shù)組的n種方式_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132782221?spm=1001.2014.3001.5501https://blog.csdn.net/m0_63834988/article/details/132782221?spm=1001.2014.3001.5501

2、數(shù)組操作

【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(十):NumPy詳解:2、數(shù)組操作(索引和切片、形狀操作、轉(zhuǎn)置操作、拼接操作)_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132830547?spm=1001.2014.3001.5501https://blog.csdn.net/m0_63834988/article/details/132830547?spm=1001.2014.3001.5501

3、數(shù)組數(shù)學(xué)

【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(十一):NumPy詳解:3、數(shù)組數(shù)學(xué)(元素、數(shù)組、矩陣級別的各種運算)_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132863360?spm=1001.2014.3001.5501

4、數(shù)組廣播

????????NumPy廣播(Broadcast)是指在不同形狀的數(shù)組之間進(jìn)行運算的一種機制。它允許我們在不顯式復(fù)制數(shù)據(jù)的情況下,對具有不同形狀的數(shù)組進(jìn)行逐元素的操作。廣播可以使我們更方便地進(jìn)行數(shù)組運算,提高代碼的簡潔性和效率。

在進(jìn)行廣播運算時,NumPy遵循一套嚴(yán)格的規(guī)則:

  • ?數(shù)組維度不同時,將維度較小的數(shù)組進(jìn)行擴展,使其與維度較大的數(shù)組具有相同的維度數(shù)。

  • 如果兩個數(shù)組在某個維度上的形狀相等,或其中一個數(shù)組在該維度上的形狀為1,則認(rèn)為它們在該維度上是兼容的。

  • 如果兩個數(shù)組在所有維度上都是兼容的,它們可以一起進(jìn)行廣播。

  • 在廣播中,沿著形狀中為1的維度進(jìn)行復(fù)制,以使兩個數(shù)組具有相同的形狀。?

????????廣播的過程是自動進(jìn)行的,無需顯式編寫循環(huán)或復(fù)制數(shù)據(jù)。讓我們通過一個具體的示例來說明廣播的工作原理:

import numpy as np

# 創(chuàng)建兩個數(shù)組
a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])

# 進(jìn)行廣播運算
c = a + b
print(c)

????????在這個例子中,數(shù)組a的形狀是(3,),數(shù)組b的形狀是(2, 3)。根據(jù)廣播的規(guī)則,a的形狀會被擴展為(2, 3),然后兩個數(shù)組逐元素相加,得到結(jié)果數(shù)組c。輸出結(jié)果如下:

[[ 5  7  9]
 [ 8 10 12]]

????????通過廣播,我們可以在不改變數(shù)組形狀的情況下,對不同形狀的數(shù)組進(jìn)行逐元素的操作。這使得我們可以更靈活地處理數(shù)據(jù),并編寫更簡潔的代碼。需要注意的是,雖然廣播可以方便地進(jìn)行數(shù)組運算,但在某些情況下可能會引起歧義或錯誤的結(jié)果。因此,在使用廣播時,建議仔細(xì)理解廣播規(guī)則,并確保操作的正確性。

5、排序操作

1. np.sort()?函數(shù)

????????該函數(shù)返回一個數(shù)組的排序副本

import numpy as np

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

# 對數(shù)組進(jìn)行排序
b = np.sort(a)
print(b)
# 輸出: [1 2 3 4 5]

2. np.argsort()?函數(shù)

????????該函數(shù)返回數(shù)組排序后的索引。

import numpy as np

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

# 返回排序后的索引
indices = np.argsort(a)
print(indices)
# 輸出: [1 3 0 2 4]

3. ndarray.sort()?方法

????????該方法原地對數(shù)組進(jìn)行排序,不返回副本。

import numpy as np

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

# 原地對數(shù)組進(jìn)行排序
a.sort()
print(a)
# 輸出: [1 2 3 4 5]

4. 按列或行排序

????????可以指定?axis?參數(shù)來按列或行對二維數(shù)組進(jìn)行排序。

import numpy as np

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

# 按列排序
b = np.sort(a, axis=0)
print(b)
# 輸出:
# [[2 1 0]
#  [3 5 4]]

# 按行排序
c = np.sort(a, axis=1)
print(c)
# 輸出:
# [[1 3 4]
#  [0 2 5]]

5. np.lexsort()?函數(shù)

????????該函數(shù)根據(jù)鍵的字典順序?qū)Χ鄠€序列進(jìn)行間接排序。

import numpy as np

a = np.array([[3, 1, 4], [2, 5, 0]])
names = np.array(['Tom', 'John'])

# 使用lexsort進(jìn)行間接排序
indices = np.lexsort((names, a[:, 0]))
print(indices)
# 輸出: [1 0]

sorted_data = a[indices]
print(sorted_data)
# 輸出:
# [[2 5 0]
#  [3 1 4]]

6. np.partition()?函數(shù)

????????該函數(shù)可以在數(shù)組中進(jìn)行分區(qū)操作,將數(shù)組分割為滿足指定條件的兩個部分。分區(qū)后,左側(cè)的元素都小于或等于右側(cè)的元素,但它們之間的順序是未定義的。

import numpy as np

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

# 對數(shù)組進(jìn)行分區(qū)
b = np.partition(a, 2)
print(b)
# 輸出: [1 2 3 4 5]

7. np.argpartition()?函數(shù)

????????該函數(shù)返回分區(qū)操作后的索引?

import numpy as np

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

# 返回分區(qū)后的索引
indices = np.argpartition(a, 2)
print(indices)
# 輸出: [1 3 0 2 4]

8. ndarray.argsort()?方法

????????該方法返回數(shù)組排序后的索引,類似于?np.argsort()?函數(shù)。

import numpy as np

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

# 返回排序后的索引
indices = a.argsort()
print(indices)
# 輸出: [1 3 0 2 4]

9. np.searchsorted()?函數(shù)

????????該函數(shù)用于在已排序的數(shù)組中查找指定元素應(yīng)該插入的位置,以9.保持排序順序。文章來源地址http://www.zghlxwxcb.cn/news/detail-709747.html

import numpy as np

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

# 查找元素應(yīng)該插入的位置
index = np.searchsorted(a, 5)
print(index)
# 輸出: 4

到了這里,關(guān)于【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(十二):NumPy詳解:4、數(shù)組廣播;5、排序操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【深度學(xué)習(xí)】 NumPy詳解(三):數(shù)組數(shù)學(xué)(元素、數(shù)組、矩陣級別的各種運算)

    【深度學(xué)習(xí)】 NumPy詳解(三):數(shù)組數(shù)學(xué)(元素、數(shù)組、矩陣級別的各種運算)

    目錄 一、前言 二、實驗環(huán)境 三、NumPy 0、多維數(shù)組對象(ndarray) 多維數(shù)組的屬性 1、創(chuàng)建數(shù)組 2、數(shù)組操作 3、數(shù)組數(shù)學(xué) 1. 元素級別 a. 直接運算 b. 加法:np.add()函數(shù) c. 減法:np.subtract()函數(shù) d. 乘法:np.multiply()函數(shù) e. 除法:np.divide()函數(shù) f. 冪運算:np.power()函數(shù) g. 取余與求商

    2024年02月03日
    瀏覽(30)
  • 【深度學(xué)習(xí)】Pytorch 系列教程(十二):PyTorch數(shù)據(jù)結(jié)構(gòu):4、數(shù)據(jù)集(Dataset)

    ???????? 目錄 一、前言 二、實驗環(huán)境 三、PyTorch數(shù)據(jù)結(jié)構(gòu) 0、分類 1、張量(Tensor) 2、張量操作(Tensor Operations) 3、變量(Variable) 4、數(shù)據(jù)集(Dataset) 隨機洗牌 ? ? ? ? ? ChatGPT: ????????PyTorch是一個開源的機器學(xué)習(xí)框架,廣泛應(yīng)用于深度學(xué)習(xí)領(lǐng)域。它提供了豐富

    2024年02月07日
    瀏覽(22)
  • 深度學(xué)習(xí)中Numpy的一些注意點(多維數(shù)組;數(shù)據(jù)類型轉(zhuǎn)換、數(shù)組扁平化、np.where()、np.argmax()、圖像拼接、生成同shape的圖片)

    深度學(xué)習(xí)中Numpy的一些注意點(多維數(shù)組;數(shù)據(jù)類型轉(zhuǎn)換、數(shù)組扁平化、np.where()、np.argmax()、圖像拼接、生成同shape的圖片)

    a.shape=(3,2);既數(shù)組h=3,w=2 a.shape=(2,3,2);這里第一個2表示axis=0維度上的,三維數(shù)組中3,2)數(shù)組的個數(shù),這里表示兩個(3,2)數(shù)組。 這里axis=0指代哪里是很重要的知識點。深度學(xué)習(xí)中經(jīng)常壓縮一個維度,axis=0。 numpy.squeeze()函數(shù)。 語法:numpy.squeeze(a,axis = None);作用是將shape維度為

    2024年01月18日
    瀏覽(43)
  • 【Python】Python進(jìn)階系列教程-- MongoDB(十二)

    往期回顧: Python進(jìn)階系列教程-- Python3 正則表達(dá)式(一) Python進(jìn)階系列教程-- Python3 CGI編程(二) Python進(jìn)階系列教程-- Python3 MySQL - mysql-connector 驅(qū)動(三) Python進(jìn)階系列教程-- Python3 MySQL 數(shù)據(jù)庫連接 - PyMySQL 驅(qū)動 Python進(jìn)階系列教程-- Python3 網(wǎng)絡(luò)編程(五) Python進(jìn)階系列教程

    2024年02月09日
    瀏覽(44)
  • NumPy 中數(shù)組拼接、合并詳解

    NumPy 中數(shù)組拼接、合并詳解

    將值添加到數(shù)組的末端,返回一個新的數(shù)組,而原數(shù)組不變。 參數(shù) 描述 arr : 類數(shù)組 輸入的數(shù)組 values : 類數(shù)組 向數(shù)組 arr 添加的元素,需要與 arr 維度相同 axis : 整型 添加操作的方向軸,axis 取 0 表示沿豎直方向操作,axis 取 1 表示沿水平方向操作,若未提供 axis 值,在添加

    2024年01月19日
    瀏覽(57)
  • Python 數(shù)據(jù)分析入門教程:Numpy、Pandas、Matplotlib和Scikit-Learn詳解

    NumPy是一個Python的科學(xué)計算基礎(chǔ)模塊,提供了多維數(shù)組和矩陣操作功能。 NumPy中的數(shù)組比Python自帶的列表更適合進(jìn)行數(shù)值計算和數(shù)據(jù)分析。 Pandas建立在NumPy之上,提供了更高級的數(shù)據(jù)分析功能。 Pandas中的DataFrame可以看成是一個二維表格,便于加載和分析數(shù)據(jù)。 Matplotlib可以用來繪

    2024年02月07日
    瀏覽(58)
  • (9)OpenCV深度學(xué)習(xí)系列教程——PyTorch入門

    作者:禪與計算機程序設(shè)計藝術(shù) PyTorch是一個由Facebook開發(fā)的開源機器學(xué)習(xí)框架,它提供了一整套用于訓(xùn)練、評估和部署深度學(xué)習(xí)模型的工具和方法。隨著深度學(xué)習(xí)在各個領(lǐng)域的應(yīng)用越來越廣泛,PyTorch作為一個成熟的框架已經(jīng)成為機器學(xué)習(xí)研究人員的必備工具。本系列教程從

    2024年02月07日
    瀏覽(26)
  • 【Python Numpy】廣播、數(shù)組的迭代

    【Python Numpy】廣播、數(shù)組的迭代

    在Python的科學(xué)計算領(lǐng)域,NumPy是一個強大的工具,它提供了用于操作多維數(shù)組的功能。廣播(Broadcasting)是NumPy中的一個重要概念,它使得不同形狀的數(shù)組之間的計算變得非常靈活和便捷。本文將介紹廣播是什么,以及如何在NumPy中使用廣播來進(jìn)行數(shù)組計算。 在Python的科學(xué)計算

    2024年02月06日
    瀏覽(24)
  • Python Numpy入門基礎(chǔ)(二)數(shù)組操作

    Python Numpy入門基礎(chǔ)(二)數(shù)組操作

    NumPy是Python中一個重要的數(shù)學(xué)運算庫,它提供了了一組多維數(shù)組對象和一組用于操作這些數(shù)組的函數(shù)。以下是一些NumPy的主要特點: 多維數(shù)組對象:NumPy的核心是ndarray對象,它是一個多維數(shù)組對象,可以容納任意數(shù)據(jù)類型。 矢量化操作:使用NumPy的函數(shù),可以對整個數(shù)組進(jìn)行

    2024年02月15日
    瀏覽(27)
  • Python numpy - 數(shù)組與矩陣的運算

    Python numpy - 數(shù)組與矩陣的運算

    目錄 ?數(shù)組array 一 數(shù)組的函數(shù) unique函數(shù) ?sum函數(shù) ?max函數(shù) 二 數(shù)組的加減 三 數(shù)組的乘除 ?矩陣matrix 一 矩陣的生成 二 矩陣的加減 三? 矩陣的乘法 創(chuàng)建數(shù)組a和b用來運算(至少兩個) 數(shù)組常用函數(shù) 函數(shù) 作用 unique() 求數(shù)組里的唯一值,輸出從小到大排列 sum() 對數(shù)組整

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包