簡體   English   中英

Python Numpy矩陣運算-矩陣[a == b]?

[英]Python Numpy Matrix Operations - matrix[a==b]?

我一直在嘗試創建一個分水嶺算法,並且所有示例似乎都在Python中,因此我碰到了一堵牆。 我一直試圖在numpy文檔中找到這行的含義:

matrixVariable[A==255] = 0

但沒有運氣。 誰能解釋該操作的作用?

對於上下文,該行在label [lbl == -1] = 0label [lbl == -1] = 0

表達式A == 255創建一個布爾數組,該數組為True ,其中A中x == 255,否則為False

表達式matrixVariable[A==255] = 0將與A == 255中的True值相對應的每個索引設置為0。

例如:

import numpy as np
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
B = np.zeros([3, 3])
print('before:')
print(B)
B[A>5] = 5
print('after:')
print(B)

出:

[[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]
after:
[[ 0.  0.  0.]
 [ 0.  0.  5.]
 [ 5.  5.  5.]]

我假設matrixVariable和A是numpy數組。 如果假設正確,則“ matrixVariable [A == 255] = 0”表達式首先獲取數組A的索引,其中A的值等於255,然后獲取這些索引的matrixVariable值並將其設置為“ 0”

例:

import numpy as np

matrixVariable = np.array([(1, 3),
                           (2, 2),
                           (3,1)])

A = np.array([255, 1,255])

所以A [0]和A [2]等於255

matrixVariable[A==255]=0 #then sets matrixVariable[0] and matrixVariable[2] to zero

print(matrixVariable) # this would print 

[[0 0] 
 [2 2] 
 [0 0]]

暫無
暫無

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

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