假設我有以下兩個陣列,a并且b:
import numpy as np
a = np.array([[[1, 0],
[1, 1]],
[[1, 0],
[0, 0]],
[[0, 0],
[1, 0]]])
b = np.array([[[0, 2],
[0, 0]],
[[0, 0],
[0, 2]],
[[0, 2],
[0, 2]]])
我希望將它們“重疊”,以便得到以下結果:
[[[1, 2],
[1, 1]],
[[1, 0],
[0, 2]],
[[0, 2],
[1, 2]]]
在有重疊坐標的情況下,我會采用1. 我怎么能做到這一點?
uj5u.com熱心網友回復:
也許您可以從一個零矩陣開始,然后一一分配標志:
import numpy as np
a = np.array([[[1, 0],
[1, 1]],
[[1, 0],
[0, 0]],
[[0, 0],
[1, 0]]])
b = np.array([[[0, 2],
[0, 0]],
[[0, 0],
[0, 2]],
[[0, 2],
[0, 2]]])
# Create a matrix with zeros
c = np.zeros(a.shape, dtype='int')
# Assign flags
c[b==2] = 2
c[a==1] = 1 # Put in second because priority to 1 in case of overlapping
# Output
print(c)
輸出:
array([[[1, 2],
[1, 1]],
[[1, 0],
[0, 2]],
[[0, 2],
[1, 2]]])
uj5u.com熱心網友回復:
使用一個簡單的總和,我設法得到了想要的結果:
import numpy as np
a = np.array([[[1, 0],
[1, 1]],
[[1, 0],
[0, 0]],
[[0, 0],
[1, 0]]])
b = np.array([[[0, 2],
[0, 0]],
[[0, 0],
[0, 2]],
[[0, 2],
[0, 2]]])
print(a b)
輸出:
[[[1 2]
[1 1]]
[[1 0]
[0 2]]
[[0 2]
[1 2]]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488938.html
標籤:Python 数组 麻木的 numpy-ndarray 面具
