程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python numpy中的copy()(復制)

編輯:Python


不是復制的情況(No Copy at All)

具體講解:

import numpy as np
a = np.arange(12) #a為一個序列
b = a #沒有創建新的對象
print('a的shape為:', a.shape) # 輸出a的尺寸
print('b是a嗎?', b is a) #ab 為同一個對象的兩個名字
b.shape = 3, 4 #將b的shape改變
print('a的shape變為:', a.shape) #a的shanpe也跟著改變了

輸出結果:

a的shape為: (12,)
b是a嗎? True
a的shape變為: (3, 4)

查看或淺復制(View or Shallow Copy)

不同的數組對象可以分型相同的數據,view方法創建一個與原來數組相同的新對象.

具體講解

a = np.arange(12)
c = a.view() # 建立一個和a一樣的c
print('c未改變時a的shape為:', a.shape) # 輸出a的尺寸
print('c是a嗎?', c is a)
print('c 是以a為基礎建立的嗎', c.base is a)
c.shape = 3, 4
print('c改變後a的shape為:', a.shape)

輸出結果:

c未改變時a的shape為: (12,)
c是a嗎? False
c 是以a為基礎建立的嗎 True
c改變後a的shape為: (12,)

深復制(Deep Copy)

這個時候d是a的復制,只是單純的復制,兩者沒有一點關系:

具體講解

a = np.arange(12)
d = a.copy() # 建立一個和a一樣的c
print('d是a嗎?', d is a)
print('d是以a為基礎建立的嗎', d.base is a)

輸出結果:

d是a嗎? False
d是以a為基礎建立的嗎 False

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved