我在 SO 上解決了這個問題,但我嘗試的方法遇到了一些問題。
OP有一個看起來像這樣的串列,
a = [[[100, 90, 80, 255],
[80, 10, 10, 255]],
[[0, 0, 0, 255],
[0, 0, 0, 255]]]
他們想用 [0,0,0,0] 替換 [0,0,0,255]。
為此,我首先嘗試使用np.where(a == [0,0,0,255])來獲取此串列出現的所有索引,但輸出是一個空陣列。
接下來,我嘗試將陣列轉換為pandas資料框并在其上應用replace函式,但資料框仍然保持不變。
np.where給我一個空陣列而不更改資料框的原因是什么,我該replace如何解決這個問題?
uj5u.com熱心網友回復:
您必須轉換a為 numpy 陣列并使用:
a = np.array(a)
a[(a == [0, 0, 0, 255]).all(axis=2)] = [0, 0, 0, 0]
輸出:
>>> a
array([[[100, 90, 80, 255],
[ 80, 10, 10, 255]],
[[ 0, 0, 0, 0],
[ 0, 0, 0, 0]]])
>>> a.tolist()
[[[100, 90, 80, 255], [80, 10, 10, 255]], [[0, 0, 0, 0], [0, 0, 0, 0]]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471426.html
上一篇:如何在Python中添加二維陣列的相鄰元素而不必使用嵌套回圈?
下一篇:如何逐行決議numpy陣列
