Я пытаюсь получить длину повторяющихся чисел в Python Numpy. Например, давайте рассмотрим простой ndarrayКак получить длину столбца с повторяющимися номерами?
import numpy as np
a = np.array([
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 1, 1, 1, 0, 1],
[0, 1, 0, 1, 0, 1, 0, 0, 1, 0],
[1, 1, 0, 0, 1, 1, 1, 1, 0, 0],
])
Первый столбец имеет [0, 1, 0, 1]
, положение 1
является 1
, теперь начинают считать оттуда, мы получаем ones = 2
и zeros = 1
. Поэтому я должен начать отсчет ones
и zeros
, когда встречается 1
(начальная позиция).
поэтому ответ на a
будет
ones = [2, 2, 1, 1, 1, 3, 2, 2, 1, 1]
zeros = [1, 0, 2, 1, 0, 0, 1, 1, 1, 2]
Может ли одна просьба помочь мне?
Update
3D массив:
a = np.array([
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 0, 0, 0, 1, 1, 1, 0, 0],
[0, 1, 0, 0, 0, 1, 0, 0, 1, 0],
[1, 1, 0, 0, 1, 1, 1, 1, 0, 0],
],
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 1, 0, 0, 0, 1, 1],
[0, 1, 0, 1, 0, 0, 0, 1, 0, 0],
[1, 1, 0, 1, 0, 1, 1, 1, 0, 0],
]
])
Ожидаемый результат должен быть
ones = [
[2, 3, 0, 0, 1, 3, 2, 2, 1, 0],
[1, 3, 0, 2, 1, 1, 1, 2, 1, 1]
]
zeros = [
[1, 0, 0, 0, 0, 0, 1, 1, 1, 0],
[0, 0, 0, 0, 2, 0, 0, 0, 2, 2]
]
Всегда ли было 0 и 1 в 'a' или могли бы быть и другие номера? – Divakar
@ Дивакар всегда 0 или 1 – Akshay