python numpy數(shù)組復(fù)制使用實(shí)例解析
這篇文章主要介紹了python numpy數(shù)組復(fù)制使用實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
在使用python時(shí)我們經(jīng)常會(huì)處理數(shù)組,有的時(shí)候是復(fù)制有的時(shí)候不是,這里也是初學(xué)者最容易誤解的地方,簡(jiǎn)單講,可以分為下面三種情況:
不是復(fù)制的情況(No Copy at All)
import numpy as np a = np.arange(12) #a為一個(gè)序列 b = a #沒(méi)有創(chuàng)建新的對(duì)象 print('a的shape為:', a.shape) # 輸出a的尺寸 print('b是a嗎?', b is a) #ab 為同一個(gè)對(duì)象的兩個(gè)名字 b.shape = 3, 4 #將b的shape改變 print('a的shape變?yōu)椋?, a.shape) #a的shanpe也跟著改變了
輸出結(jié)果
a的shape為: (12,) b是a嗎? True a的shape變?yōu)椋?(3, 4)
查看或淺復(fù)制(View or Shallow Copy)
不同的數(shù)組對(duì)象可以分型相同的數(shù)據(jù),view方法創(chuàng)建一個(gè)與原來(lái)數(shù)組相同的新對(duì)象
a = np.arange(12) c = a.view() # 建立一個(gè)和a一樣的c print('c未改變時(shí)a的shape為:', a.shape) # 輸出a的尺寸 print('c是a嗎?', c is a) print('c 是以a為基礎(chǔ)建立的嗎', c.base is a) c.shape = 3, 4 print('c改變后a的shape為:', a.shape)
輸出結(jié)果:
c是a嗎? False c 是以a為基礎(chǔ)建立的嗎 True a的shape為: (12,) a的shape為: (12,)
深復(fù)制(Deep Copy)
這個(gè)時(shí)候d是a的復(fù)制,只是單純的復(fù)制,兩者沒(méi)有一點(diǎn)關(guān)系
a = np.arange(12) d = a.copy() # 建立一個(gè)和a一樣的c print('d是a嗎?', d is a) print('d是以a為基礎(chǔ)建立的嗎', d.base is a)
輸出結(jié)果:
d是a嗎? False d是以a為基礎(chǔ)建立的嗎 False
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python基礎(chǔ)教程之?dāng)?shù)字處理(math)模塊詳解
這篇文章主要介紹了pythonr的數(shù)字處理模塊知識(shí)(math),需要的朋友可以參考下2014-03-03Python常用標(biāo)準(zhǔn)庫(kù)之os模塊功能
這篇文章主要介紹了Python常用標(biāo)準(zhǔn)庫(kù)之os模塊功能,os模塊的主要功能有系統(tǒng)相關(guān)、目錄及文件操作、執(zhí)行命令和管理進(jìn)程,其中的進(jìn)程管理功能主要是Linux相關(guān)的,此處不做討論,對(duì)Python標(biāo)準(zhǔn)庫(kù)os相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2022-11-11Python棧的實(shí)現(xiàn)方法示例【列表、單鏈表】
這篇文章主要介紹了Python棧的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python基于列表、單鏈表定義棧的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02Django 實(shí)現(xiàn) Websocket 廣播、點(diǎn)對(duì)點(diǎn)發(fā)送消息的代碼
這篇文章主要介紹了Django 實(shí)現(xiàn) Websocket 廣播、點(diǎn)對(duì)點(diǎn)發(fā)送消息,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06