私はPython Numpyで繰り返し数の長さを取得しようとしています。たとえば、最初の列が[0, 1, 0, 1]
を持って、1
の位置が今そこからカウントを開始し、1
あるのは、単純な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],
])
を考えてみましょう、我々はones = 2
とzeros = 1
を取得します。だから、1
に遭遇したとき(開始位置)、ones
とzeros
を数え始めなければならない。
いずれかが私を助けてくださいすることができそうa
のための答えは
ones = [2, 2, 1, 1, 1, 3, 2, 2, 1, 1]
zeros = [1, 0, 2, 1, 0, 0, 1, 1, 1, 2]
でしょうか?
更新
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]
]
'a'で常に0と1になるのでしょうか、それとも他の数字もありますか? – Divakar
@Divakar常に0または1 – Akshay