欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)

 更新時(shí)間:2024年02月27日 10:02:33   作者:高斯小哥  
np.c_和?np.r_是NumPy庫(kù)中兩個(gè)非常有用的函數(shù),它們分別用于按列和按行拼接數(shù)組本文主要介紹了NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下

在Python的數(shù)據(jù)科學(xué)庫(kù)中,NumPy無(wú)疑是最受歡迎和最常用的庫(kù)之一。NumPy為大型多維數(shù)組和矩陣提供了強(qiáng)大的支持,并包含了一系列用于操作這些數(shù)組的函數(shù)。在這篇文章中,我們將深入探討NumPy中的兩個(gè)函數(shù):np.c_ 和 np.r_。這兩個(gè)函數(shù)都用于將多個(gè)數(shù)組按列(column)或行(row)拼接在一起,但它們之間有一些微妙的差異。

一、?? np.c_:按列拼接

np.c_ 函數(shù)用于將多個(gè)一維或二維數(shù)組按列拼接在一起。這意味著它將數(shù)組水平地堆疊在一起。

代碼示例

import numpy as np

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

# 使用 np.c_ 按列拼接
c = np.c_[a, b]

print(c)

print("*"*50)

# 創(chuàng)建兩個(gè)二維數(shù)組
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, 8]])

# 使用 np.c_ 按列拼接
z = np.c_[x, y]

print(z)

輸出:

[[1 4]
 [2 5]
 [3 6]]
**************************************************
[[1 2 5 6]
 [3 4 7 8]]

如你所見(jiàn),np.c_ 函數(shù)將數(shù)組水平地堆疊在一起,意味者如果兩個(gè)數(shù)組的行數(shù)不相同,將會(huì)報(bào)錯(cuò):

import numpy as np

# 創(chuàng)建兩個(gè)二維數(shù)組
x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])
print(x.shape) # (3, 3) 三行三列
y = np.array([[5, 6], [7, 8]])
print(y.shape) # (2, 2) 兩行兩列

# 使用 np.c_ 按列拼接
z = np.c_[x, y]

print(z)

運(yùn)行報(bào)錯(cuò):

ValueError: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 3 and the array at index 1 has size 2

二、?? np.r_:按行拼接

相比之下,np.r_ 函數(shù)用于將多個(gè)一維或二維數(shù)組按行拼接在一起。這意味著它將數(shù)組垂直地堆疊在一起。

代碼示例

import numpy as np

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

# 使用 np.r_ 按行拼接
c = np.r_[a, b]

print(c)

print("*"*50)

# 創(chuàng)建兩個(gè)二維數(shù)組
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6]])

# 使用 np.r_ 按行拼接
z = np.r_[x, y]

print(z)

輸出:

[1 2 3 4 5 6]
**************************************************
[[1 2]
 [3 4]
 [5 6]]

注意,當(dāng)使用 np.r_ 進(jìn)行拼接時(shí),輸出數(shù)組的行數(shù)將是輸入數(shù)組行數(shù)的總和。同樣,如果輸入數(shù)組的列數(shù)不匹配,也會(huì)出現(xiàn)類似的報(bào)錯(cuò)。

三、?? 性能與內(nèi)存考慮

雖然 np.c_ 和 np.r_ 在功能上有所不同,但在大多數(shù)情況下,它們的性能差異并不顯著。然而,當(dāng)處理大型數(shù)據(jù)集時(shí),理解這些函數(shù)的內(nèi)部工作原理和潛在的內(nèi)存影響是很重要的。

由于 np.c_ 和 np.r_ 都是基于NumPy的底層函數(shù)實(shí)現(xiàn)的,它們通常比使用Python的內(nèi)置列表拼接操作更快、更高效。這是因?yàn)镹umPy能夠在C語(yǔ)言級(jí)別上執(zhí)行這些操作,從而避免了Python解釋器的開(kāi)銷。

四、?? 使用場(chǎng)景分析

選擇使用 np.c_ 還是 np.r_ 取決于你的具體需求。

  • 如果你需要將多個(gè)數(shù)組水平地堆疊在一起(即按列拼接),那么應(yīng)該使用 np.c_
  • 如果你需要將多個(gè)數(shù)組垂直地堆疊在一起(即按行拼接),那么應(yīng)該使用 np.r_

此外,當(dāng)處理多維數(shù)組時(shí),了解數(shù)組的形狀和維度是非常重要的。這將幫助你確定應(yīng)該使用 np.c_ 還是 np.r_,以確保得到期望的結(jié)果。

五、?? 總結(jié)

np.c_ 和 np.r_ 是NumPy庫(kù)中兩個(gè)非常有用的函數(shù),它們分別用于按列和按行拼接數(shù)組。雖然它們的功能相似,但它們之間的主要區(qū)別在于拼接的方向。了解這些差異并根據(jù)具體需求選擇適當(dāng)?shù)暮瘮?shù),將幫助你更有效地處理多維數(shù)組和矩陣。

在數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和科學(xué)計(jì)算中,經(jīng)常需要對(duì)數(shù)組進(jìn)行各種變換和操作。np.c_ 和 np.r_ 提供了方便的方式來(lái)水平或垂直地堆疊數(shù)組,這對(duì)于數(shù)據(jù)預(yù)處理、特征工程以及構(gòu)建和訓(xùn)練模型等任務(wù)非常有用。

到此這篇關(guān)于NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)NumPy np.c_ 和 np.r_ 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • centos6.8安裝python3.7無(wú)法import _ssl的解決方法

    centos6.8安裝python3.7無(wú)法import _ssl的解決方法

    這篇文章主要介紹了centos6.8安裝python3.7無(wú)法import _ssl的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 從PySpark中的字符串獲取列表方法講解

    從PySpark中的字符串獲取列表方法講解

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于從PySpark中的字符串獲取列表方法講解及相關(guān)實(shí)例,有需要的朋友們跟著學(xué)習(xí)下。
    2021-12-12
  • 如何用Python進(jìn)行時(shí)間序列分解和預(yù)測(cè)

    如何用Python進(jìn)行時(shí)間序列分解和預(yù)測(cè)

    這篇文章主要介紹了如何用Python進(jìn)行時(shí)間序列分解和預(yù)測(cè),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • 基于Python編寫一個(gè)單詞自測(cè)程序

    基于Python編寫一個(gè)單詞自測(cè)程序

    這篇文章主要為大家詳細(xì)介紹了如何基于Python編寫一個(gè)單詞自測(cè)程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 圖文詳解Django使用Pycharm連接MySQL數(shù)據(jù)庫(kù)

    圖文詳解Django使用Pycharm連接MySQL數(shù)據(jù)庫(kù)

    這篇文章主要介紹了Django使用Pycharm連接MySQL數(shù)據(jù)庫(kù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 詳解python深淺拷貝區(qū)別

    詳解python深淺拷貝區(qū)別

    在本篇文章里小編給大家整理了關(guān)于python深淺拷貝區(qū)別的相關(guān)知識(shí)點(diǎn)總結(jié),有興趣的朋友們可以參考下。
    2019-06-06
  • python基于遞歸解決背包問(wèn)題詳解

    python基于遞歸解決背包問(wèn)題詳解

    這篇文章主要介紹了python基于遞歸解決背包問(wèn)題,遞歸是個(gè)好東西,任何具有遞歸性質(zhì)的問(wèn)題通過(guò)函數(shù)遞歸調(diào)用會(huì)變得很簡(jiǎn)單。一個(gè)很復(fù)雜的問(wèn)題,幾行代碼就能搞定,需要的朋友可以參考下
    2019-07-07
  • Python搭建代理IP池實(shí)現(xiàn)獲取IP的方法

    Python搭建代理IP池實(shí)現(xiàn)獲取IP的方法

    這篇文章主要介紹了Python搭建代理IP池實(shí)現(xiàn)獲取IP的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Django自定義認(rèn)證方式用法示例

    Django自定義認(rèn)證方式用法示例

    這篇文章主要介紹了Django自定義認(rèn)證方式用法,結(jié)合實(shí)例形式分析了Django自定義認(rèn)證的創(chuàng)建、設(shè)置及功能實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫(kù)基本操作大全

    Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫(kù)基本操作大全

    在后端應(yīng)用開(kāi)發(fā)中,經(jīng)常會(huì)用到Postgres/Mysql/Mongo這三種數(shù)據(jù)庫(kù)的基本操作,今天小編就給大家詳細(xì)介紹Python連接Postgres/Mysql/Mongo數(shù)據(jù)庫(kù)基本操作,感興趣的朋友一起看看吧
    2021-06-06

最新評(píng)論