我有兩個陣列,如下所示。
import numpy as np
y1 = [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1]
y2 = [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1]
y1_a = np.array(y1)
y2_a = np.array(y2)
print(y1_a)
print(y2_a)
在這種情況下,我必須修改 'y2_a' 陣列:
每當 'y1_a' 在給定陣列位置為 1 并且如果 'y2_a' 在同一陣列位置為 0,則我必須將 'y2_a' 替換為 1。我不想為 'y1_a' 中的 0 值執行此操作.
我必須將此修改后的陣列寫入另一個陣列變數。
uj5u.com熱心網友回復:
看起來您可以在此處使用按位或運算子。就像是
for i in range(len(y2_a)):
y2_a[i] = y1_a[i] | y2_a[i]
如果 y1_a 中的那個位置有 1,這將保留 y2_a 中已經存在的那些并翻轉 y2_a 中的 0
uj5u.com熱心網友回復:
您可以使用:
out = y1_a | y2_a
輸出:
array([1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1])
uj5u.com熱心網友回復:
您可以使用numpy.where.
# Whenever 'y1_a==1' and 'y2_a==0', we set '1'
# for other conditions we set 'y2_a'.
res = np.where(y1_a & ~y2_a, 1, y2_a)
print(res)
輸出:array([1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516083.html
