如何使用python numpy中的陣列複製

2022-08-22 00:42:10 字數 1089 閱讀 8315

在使用python時我們經常會處理陣列,有的時候是複製有的時候不是,這裡也是初學者最容易誤解的地方,簡單講,可以分為下面三種情況:

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方法建立乙個與原來陣列相同的新物件

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嗎? false

c 是以a為基礎建立的嗎 true

a的shape為: (12,)

a的shape為: (12,)

這個時候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

使用python numpy線性回歸

線性回歸的原理不再贅述,本文給出了乙個簡單的使用梯度下降的線性回歸模擬。import numpy as np def weightsupdate data,w,b,learning rate 0.01 for x0,y0 in data y np.dot x0,w b w gradient y y0...

對python numpy陣列中冒號的使用方法詳解

python中冒號實際上有兩個意思 1.預設全部選擇程式設計客棧 2.指定範圍。下面看例子 定義陣列 x array 1,2,www.cppcns.com3,4 5,6,7,8 9,10,11,12 程式設計客棧13,14,15,16 17,18,19,20 輸出為5x4二維陣列 第一種意思,預設全...

Python Numpy陣列儲存

numpy提供了幾種資料儲存的方法。以3 4陣列a為例 這種方法只能儲存為二進位制檔案,且不能儲存當前資料的行列資訊,檔案字尾不一定非要是bin,也可以為txt,但不影響儲存格式,都是二進位制。這種儲存方法對資料讀取有要求,需要手動指定讀出來的資料的的dtype,如果指定的格式與儲存時的不一致,則讀...