Пример кода приведен ниже.
Я хочу получить dataNew(h, w, length)
в соответствии с data(h, w, c)
и ind(h, w)
. Здесь length < c
, это означает, что dataNew вырезано из данных.
Здесь length
и ind[i, j]
обязательно соответствуют значению c
.
Я понял это через циклы, но я поймал путь питона. Пожалуйста, помогите, спасибо!
import numpy as np
h, w, c = 3, 4, 5
data = np.arange(60).reshape((h, w, c))
print(data)
length = 3
ind = np.random.randint(0, 3, 12).reshape(h, w)
print(ind)
dataNew = np.empty((h, w, length), np.int16)
for i in range(h):
for j in range(w):
st = ind[i, j]
dataNew[i, j] = data[i, j][st : st + length]
print(dataNew)