簡體   English   中英

為numpy數組中的整個行分配一個值

[英]Assign a value to entire row in numpy array

我有一個帶有成績的數組的以下示例:

grades = np.array([[ 1,  1,  2,  -3],[ 4,  5,  6,  7],[ 8,  9, -3, 11],[12, 13, 14, 15]])

我想用“ -3”標識元素,並將其整個行更改為該數字,例如結果:

grades = np.array([[ -3,  -3,  -3,  -3],[ 4,  5,  6,  7],[ -3,  -3, -3, -3],[12, 13, 14, 15]])

到目前為止,我嘗試了:

grades[np.argwhere(grades==-3)]=-3

但我得到以下結果,其中還有其他受影響的行:

array([[-3, -3, -3, -3],[ 4,  5,  6,  7],[-3, -3, -3, -3],[-3, -3, -3, -3],[16, 17, 18, 19]])

有任何想法嗎? 謝謝!

首先使用簡單==numpy.any查找哪些行包含-3。 現在,在此布爾數組上建立索引並為其分配-3,廣播將處理其余的事情。

>>> grades = np.array([[ 1,  1,  2,  -3],[ 4,  5,  6,  7],[ 8,  9, -3, 11],[12, 13, 14, 15]])
>>> grades[np.any(grades == -3, axis=1)] = -3
>>> grades
array([[-3, -3, -3, -3],
       [ 4,  5,  6,  7],
       [-3, -3, -3, -3],
       [12, 13, 14, 15]])

暫無
暫無

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

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