所以我需要添加几个3D数组。每个数组由0或1的条目组成。所有数组也具有相同的维度。现在,当我将这些数组加在一起时,一些值重叠(他们这样做)。但是,我只需要知道总组合阵列的结构如何,这意味着当2或3个数组重叠时,我不需要值1,2或3。这也只需要一个,当然,只要有零,零值只需要保持为零。
基本上我所拥有的是:
let someOtherPath = new SomeOtherPath('some-other-path');
// now I can call
someOtherPath.relationships.one.someMethodFromThatRelationship();
// and can also call the save method from the extended class
someOtherPath.one().makePath();
// some-other-path/one
// I can also just call
someOtherPath.makePath();
// some-other-path
所以当我们将它们加在一起时,我得到:
array1 =
[[[1, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 1, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 1], [1, 1, 1], [0, 0, 0]]]
array2 =
[[[1, 0, 0], [0, 1, 0], [0, 0, 0]],
[[0, 0, 0], [1, 1, 0], [0, 0, 0]],
[[0, 0, 1], [0, 1, 0], [0, 0, 0]]]
我真正想要它给我的地方:
array_total = array1 + array2 =
[[[2, 0, 0], [0, 1, 0], [0, 0, 0]],
[[0, 1, 0], [1, 1, 0], [0, 0, 0]],
[[0, 0, 2], [1, 2, 1], [0, 0, 0]]]
那么有人能给我一个如何做到这一点的暗示吗?
答案 0 :(得分:2)
(假设这些是numpy
数组,或array1 + array2
的行为不同。)
如果您想“将所有正值更改为1”,则可以执行此操作
array_total[array_total > 0] = 1
但你真正想要的是一个1
的数组,其中array1
或array2
有一个1
,所以只需直接写它:
array_total = array1 | array2
示例:
>>> array1 = np.array([[[1, 0, 0], [0, 0, 0], [0, 0, 0]],
... [[0, 1, 0], [0, 0, 0], [0, 0, 0]],
... [[0, 0, 1], [1, 1, 1], [0, 0, 0]]])
>>> array2 = np.array([[[1, 0, 0], [0, 1, 0], [0, 0, 0]],
... [[0, 0, 0], [1, 1, 0], [0, 0, 0]],
... [[0, 0, 1], [0, 1, 0], [0, 0, 0]]])
>>> array1 | array2
array([[[1, 0, 0], [0, 1, 0], [0, 0, 0]],
[[0, 1, 0], [1, 1, 0], [0, 0, 0]],
[[0, 0, 1], [1, 1, 1], [0, 0, 0]]])