добавление значений в массив numpy для придания им одинаковой формы - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть массив пустышек, называемый «MEL» формы (94824,).

Эти значения содержат массивы различной формы, такие как (99,13), (54, 13) (87, 13).Я хотел бы заполнить массивы, которые меньше (99,13) нулями или даже лучше среднего значения этого массива.

MEL = numpy.ndarray and
for i in MEL: i = <class 'numpy.ndarray'> (i.shape = 99, 13) except for the ones that need to be filled
for j in i: j = <class 'numpy.ndarray'>

До сих пор у меня есть это:

max_len = np.max([len(a) for a in MEL])
for i in MEL:
    i = np.asarray([np.pad(a, (0, max_len - len(a)), 'constant', constant_values=0) for a in i])

Но формы остаются теми же.какие-либо предложения?

1 Ответ

0 голосов
/ 14 декабря 2018

Из того, что я понимаю по вашему вопросу, MEL - это список из 94824 двумерных массивов, которые имеют разные формы.Вы хотите вернуть массивы, которые имеют ту же форму, что и самый большой, но заполнены 0.

Я думаю, проще всего создать новые массивы, которые имеют соответствующую форму, и заполнить их прежними.Небольшой пример будет:

max_dim = [np.max([a.shape[0] for a in MEL]), np.max([a.shape[1] for a in MEL])]
new_MEL = []
for a in MEL:
    temp = np.zeros((max_dim[0], max_dim[1]))
    temp[:a.shape[0], :a.shape[1]] = a
    new_MEL.append(temp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...