Как итеративно добавить параметр в функцию - PullRequest
0 голосов
/ 09 марта 2020

У меня есть массив results, который является многомерным. Каждый раз, когда я увеличиваю параметр n, в массиве results будет создаваться больше записей, и массив будет увеличиваться.

С каждым увеличением n мне нужно выполнять функцию reshape() для массива results, чтобы в функцию reshape() добавлялось больше параметров при каждом увеличении n ,

Например, когда n = 2:

n = 2
arr_multi_dim = results.reshape(nrows, ncols, nrows, ncols)

, когда n = 3:

n = 3
arr_multi_dim = results.reshape(nrows, ncols, nrows, ncols, nrows, ncols)

, когда n = 4:

n = 4
arr_multi_dim = results.reshape(nrows, ncols, nrows, ncols, nrows, ncols, nrows, ncols)

et c.

где при каждом увеличении n набор nrows и ncols добавляется в функцию reshape().

Как мне написать функцию, цикл (или что-то подобное), чтобы при указании любых значений для n использовалась соответствующая функция reshape()?

Заранее большое спасибо.

Ответы [ 2 ]

2 голосов
/ 09 марта 2020

Похоже на задачу для распаковки аргумента (оператор псевдоним звезды). Я бы сделал:

arr_multi_dim = results.reshape(*[nrows, ncols]*n)

[nrows, ncols]*2 превращается в [nrows, ncols, nrows, ncols], [nrows, ncols]*3 превращается в [nrows, ncols, nrows, ncols, nrows, ncols] и т. Д.

1 голос
/ 09 марта 2020

Как это может быть?

results.reshape(*[nrows,ncol]*n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...