python numpy陣列中的複製問題

2022-02-22 05:33:24 字數 685 閱讀 4823

vector = numpy.array([5, 10, 15, 20])

equal_to_ten_or_five = (vector == 10) | (vector == 5)

vector[equal_to_ten_or_five] = 50

print(vector)

第一次看到這個的時候一臉懵逼,後來分析了下懂了下面記錄下,方便下次看看

第一行分析:

結果5, 10, 15, 20

第二行分析:

vector == 10 陣列和值比對獲得結果是每個元素和這個數比較生成相應的bool陣列 這裡的話就知道了結果是[flase,true,flase,flase]

vector == 5就是[true,flase,flase,flase]

然後進行或'|'運算得到了[true,true,flase,flase]

著兩個陣列進行或運算的時候是陣列直接相同序號的元素或元素然後得到新的陣列(遵循規則f|f =f,f|t=t,t|t=t)

此時equal_to_ten_or_five 就等於[true,true,flase,flase]

第三行分析:

vector[equal_to_ten_or_five]=50 會給等於true的複製為50 其他的不變也就是此時

vector等於[50,50,15,20]

python numpy 陣列的切片

參考 對於一維陣列 來說,python原生的list和numpy的array的切片操作都是相同的。arr name start end step 是複製源的意思 對於二維陣列來說,對陣列操作規範是這樣的 arr name 行操作,列操作 舉個例子 in np.arrange 12 reshape 3...

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

在使用python時我們經常會處理陣列,有的時候是複製有的時候不是,這裡也是初學者最容易誤解的地方,簡單講,可以分為下面三種情況 import numpy as np a np.arange 12 a為乙個序列 b a 沒有建立新的物件 print a的shape為 a.shape 輸出a的尺寸 p...

對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二維陣列 第一種意思,預設全...