我嘗試使用 np.all 來翻譯陣列。但結果似乎沒有像我預期的那樣奏效。
x = np.array([[
[0, 255, 0],
[255, 0, 255]],
[[0, 0, 0],
[0, 255, 0]],
[[0, 0, 0],
[0, 0, 0]]
])
label = np.array([255, 0, 0])
ret = np.all(x == label, axis=0)
print(ret)
結果:
[[False False True]
[False False False]]
預期的:
[[False True False]
[True False True ]]
我認為,比較維度 0 的陣列,應該是這樣的:
x[:,0,0] == [255, 0, 0], x[:,0,1] == [255, 0, 0], x[:,0,2] == [255, 0, 0]
x[:,1,0] == [255, 0, 0], x[:,1,1] == [255, 0, 0], x[:,1,2] == [255, 0, 0]
但結果似乎不是這樣。最奇怪的是,如果我將維度更改為 1
ret = np.all(x == label, axis=1)
我也得到了這樣的結果:
[[False False False]
[False False True]
[False True True]]
變數 x 的維度 1 的大小為 2,它如何與大小為 3 的陣列進行比較并得到 True 結果!
uj5u.com熱心網友回復:
x是 (3,2,3),label是 (3,)
x == label廣播label到 (1,1,3)
減少第all一個軸離開 (2,3)
所以測驗是x[0,0,:] == [255, 0, 0]等
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/441554.html
下一篇:連接矩陣5x2和5x3
