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

Python中Numpy的深拷貝和淺拷貝

 更新時(shí)間:2022年05月24日 17:05:35   作者:sgzqc  
這篇文章主要介紹了Python中Numpy的深拷貝和淺拷貝,通過講解Python中對Numpy數(shù)組操作的淺拷貝和深拷貝的概念和背后的原理展開全文,需要的小伙伴可以參考一下

1. 引言

深拷貝和淺拷貝是Python中重要的概念,本文重點(diǎn)介紹在NumPy中深拷貝和淺拷貝相關(guān)操作的定義和背后的原理。
閑話少說,我們直接開始吧!

2. 淺拷貝

2.1 問題引入

我們來舉個(gè)栗子,如下所示我們有兩個(gè)數(shù)組a和b,樣例代碼如下:

import numpy as np
a = np.array([1, 2, 3])
b = a
print('a =', a)
print('b =', b)

輸出如下:

a = [1 2 3]
b = [1 2 3]

此時(shí)如果我們對數(shù)組a做如下改變,代碼如下:

import numpy as np
a = np.array([1, 2, 3])
b = a
a [0] = 42
print('a =', a)
print('b =', b)

那么我們的問題為: 此時(shí)b的值應(yīng)該為多少?
運(yùn)行上述代碼后,我們得到輸出如下:

a = [42 2 3]
b = [42 2 3]

2.2 問題剖析

也許有人會覺得輸出應(yīng)該為??a=[42 2 3]?? 和 ??b=[1 2 3]?? ,但是運(yùn)行上述代碼后我們發(fā)現(xiàn)??a??和??b??的值均發(fā)生了相應(yīng)的改變。這主要是由于在??Numpy??中對變量的賦值操作,實(shí)際上發(fā)生的為淺拷貝。

換句話說,此時(shí)兩個(gè)變量指向同一塊內(nèi)存地址,如下所示:

所以,此時(shí)如果我們修改數(shù)組??original_array??中的某個(gè)元素,`copy_array

??由于和??original_array`公用同一塊內(nèi)存,所以其中的元素也會發(fā)生相應(yīng)的變化。

3. 深拷貝

3.1 舉個(gè)栗子

如果我們想要對??Numpy??數(shù)組執(zhí)行深拷貝,此時(shí)我們可以使用函數(shù)??copy()??。

相關(guān)的樣例代碼如下:

import numpy as np
a = np.array([1, 2, 3])
b = a.copy()
print('a =', a)
print('b =', b)

輸出如下:

a = [1 2 3]
b = [1 2 3]

此時(shí),如果我們改變數(shù)組??a??中的元素,代碼如下:

import numpy as np
a = np.array([1, 2, 3])
b = a.copy()
a [0] = 42
print('a =', a)
print('b =', b)

此時(shí)的代碼輸出如下:

a = [42 2 3]
b = [1 2 3]

3.2 探究原因

觀察上述輸出,我們可以清楚地看到數(shù)組??a??發(fā)生了改變而數(shù)組??b??沒有發(fā)生變化,這是由于我們使用了深拷貝。

此時(shí)的內(nèi)存地址如下:

由于 ??original_array??和??copy_array??指向不同的內(nèi)存地址空間,所以此時(shí)我們對??original_array??的改變并不會對??copy_array??帶來影響。

4. 技巧總結(jié)

經(jīng)過上述對深拷貝和淺拷貝的舉例和示例,相信大家都已有了清晰的認(rèn)識,接著我們對上述知識點(diǎn)進(jìn)行總結(jié),歸納如下:

4.1 判斷是否指向同一內(nèi)存

如果我們需要知道兩個(gè)變量是否指向同一塊內(nèi)存地址,我們可以方便地使用??is??操作。

淺拷貝示例:

a = np.array([1, 2, 3])
b = a
print(b is a)

輸出如下:

True

深拷貝示例:

a = np.array([1, 2, 3])
b = a.copy()
print(b is a)

輸出如下:

False

4.2 其他數(shù)據(jù)類型

盡管本文中所有的示例都使用了NumPy數(shù)組,但本文中所涉及的知識也適用于Python中的列表和字典等其他數(shù)據(jù)類型。
總之,我們需要時(shí)刻記載心中:在淺拷貝中,原始數(shù)組和新的數(shù)組共同執(zhí)行同一塊內(nèi)存;同時(shí)在深拷貝中,新的數(shù)組是原始數(shù)據(jù)的單獨(dú)的拷貝,它指向一塊新的內(nèi)存地址。

5. 總結(jié)

本文重點(diǎn)介紹了Python中對Numpy數(shù)組操作的淺拷貝和深拷貝的概念和背后的原理,同時(shí)給出了相應(yīng)的代碼示例。

到此這篇關(guān)于Python中Numpy的深拷貝和淺拷貝的文章就介紹到這了,更多相關(guān)Python Numpy 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python設(shè)計(jì)模式之命令模式原理與用法實(shí)例分析

    Python設(shè)計(jì)模式之命令模式原理與用法實(shí)例分析

    這篇文章主要介紹了Python設(shè)計(jì)模式之命令模式,結(jié)合具體實(shí)例形式分析了Python命令模式相關(guān)概念、原理、定義及使用方法,需要的朋友可以參考下
    2019-01-01
  • 基于Python中的turtle繪畫星星和星空

    基于Python中的turtle繪畫星星和星空

    這篇文章主要介紹了基于Python中的turtle繪畫星星和星空,turtle?是?Python?中自帶的繪圖模塊,下文章關(guān)于turtle繪畫星星和星空的詳細(xì)內(nèi)容,需要的朋友可以參考一下,可以當(dāng)作學(xué)習(xí)小練習(xí)
    2022-03-03
  • Python中進(jìn)程的調(diào)度算法詳解

    Python中進(jìn)程的調(diào)度算法詳解

    這篇文章主要介紹了Python中進(jìn)程的調(diào)度算法詳解,要想多個(gè)進(jìn)程交替運(yùn)行,操作系統(tǒng)必須對這些進(jìn)程進(jìn)行調(diào)度,這個(gè)調(diào)度也不是隨即進(jìn)行的,而是需要遵循一定的法則,由此就有了進(jìn)程的調(diào)度算法,需要的朋友可以參考下
    2023-07-07
  • Windows系統(tǒng)下多版本pip的共存問題詳解

    Windows系統(tǒng)下多版本pip的共存問題詳解

    這篇文章主要給大家介紹了關(guān)于在Windows系統(tǒng)下多版本pip的共存問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • python實(shí)現(xiàn)漫天飄落的七彩花朵效果

    python實(shí)現(xiàn)漫天飄落的七彩花朵效果

    要實(shí)現(xiàn)漫天飄落的七彩花朵效果,你可以使用Python的圖形庫,如Pygame或Pyglet,這些庫可以幫助你創(chuàng)建動畫和圖形效果,本文給大家介紹了如何使用python實(shí)現(xiàn)漫天飄落的七彩花朵效果,感興趣的朋友可以參考下
    2024-01-01
  • 查看keras的默認(rèn)backend實(shí)現(xiàn)方式

    查看keras的默認(rèn)backend實(shí)現(xiàn)方式

    這篇文章主要介紹了查看keras的默認(rèn)backend實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python提取具有某種特定字符串的行數(shù)據(jù)方法

    python提取具有某種特定字符串的行數(shù)據(jù)方法

    今天小編就為大家分享一篇python提取具有某種特定字符串的行數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Pygame?精準(zhǔn)檢測圖像碰撞的問題

    Pygame?精準(zhǔn)檢測圖像碰撞的問題

    這篇文章主要介紹了Pygame?精準(zhǔn)檢測圖像碰撞,在用Pygame寫游戲的時(shí)候,有人可能會遇到兩個(gè)Rect對象碰撞但是對象之間還有空間間隔的問題,這里,將教大家用一種方法精準(zhǔn)地檢測圖像碰撞,需要的朋友可以參考下
    2022-06-06
  • python使用watchdog實(shí)現(xiàn)文件資源監(jiān)控

    python使用watchdog實(shí)現(xiàn)文件資源監(jiān)控

    watchdog 支持跨平臺文件資源監(jiān)控,可以檢測指定文件夾下文件及文件夾變動,下面我們來看看Python如何使用watchdog實(shí)現(xiàn)文件資源監(jiān)控吧
    2025-01-01
  • 解決pycharm 安裝numpy失敗的問題

    解決pycharm 安裝numpy失敗的問題

    今天小編就為大家分享一篇解決pycharm 安裝numpy失敗的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論

株洲市| 澄城县| 保山市| 平武县| 苏尼特左旗| 孝昌县| 丰原市| 满城县| 辉南县| 元江| 时尚| 德兴市| 化德县| 江津市| 阳山县| 军事| 措美县| 吴桥县| 永川市| 平江县| 延津县| 阜康市| 临泽县| 年辖:市辖区| 天水市| 广灵县| 普宁市| 德令哈市| 利辛县| 中宁县| 嘉兴市| 泸定县| 太湖县| 曲靖市| 阿荣旗| 张家口市| 株洲县| 威海市| 清涧县| 应城市| 大理市|