Давайте начнем с объединения a
, b
, c
и d
в один массив x
:
In [452]: x = np.stack([a, b, c, d])
In [453]: x
Out[453]:
array([[1, 1],
[1, 2],
[1, 3],
[1, 4]])
Затем вы можете применить уникальный NumPy к каждому столбцу и проверить, содержит ли результат один или несколько элементов.
In [454]: fixidx = np.array([np.unique(x[:, i]).size == 1 for i in range(x.shape[1])])
In [455]: fixidx
Out[455]: array([ True, False])
Наконец, при необходимости вы можете привести fixidx
к целому числу:
In [456]: fixidx.astype(int)
Out[456]: array([1, 0])
Кроме того, вы можете получить тот же результат через NumPy's , равный , следующим образом:
fixidx = np.ones(shape=a.shape, dtype=int)
x = [a, b, c, d]
for first, second in zip(x[:-1], x[1:]):
fixidx *= np.equal(first, second)