簡體   English   中英

numpy數組切片之間的區別

[英]Difference between slicing of a numpy array

因此, mat是一個 NumPy 數組,我使用切片操作從數組創建不同的視圖,不同的行為row1, row2, row3

然后我嘗試修改每一行,但是為什么在row3的情況下我無法修改實際的數組mat

mat = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
row1 = mat[0, :] #[1 2 3 4] 
row2 = mat[1:2, :] #[[5 6 7 8]]
row3 = mat[[2], :] #[[ 9 10 11 12]]
row1[0] = -1 #[-1  2  3  4] 
row2[0,0] = -5 #[[-5  6  7  8]] 
row3[0,0] = -9 # [[-9 10 11 12]]
print(mat)

這種情況下的輸出是

[[-1  2  3  4]
 [-5  6  7  8]
 [ 9 10 11 12]]

為什么row3不引用原始數組?

您在row3上執行的索引操作被認為是advanced_indexing ,numpy 將始終在高級索引期間創建副本,並在正常索引期間創建視圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM