Поиск всех 1-мерных массивов в массиве numpyPython

Программы на Python
Ответить
Anonymous
 Поиск всех 1-мерных массивов в массиве numpy

Сообщение Anonymous »

При наличии пустого массива размером n, каждое направление которого имеет длину m, я хотел бы перебрать все одномерные массивы длины m.
Например, рассмотрим: р>

Код: Выделить всё

import numpy as np
x = np.identity(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
тогда я хотел бы найти все одномерные массивы длиной 4. Таким образом, результат должен включать все 4 строки, все 4 столбца и 2 диагонали:

Код: Выделить всё

[x[i,:] for i in range(4)] + [x[:,i] for i in range(4)] + [np.array([x[i,i] for i in range(4)])] + [np.array([x[3-i,i] for i in range(4)])]
Мне неясно, как обобщить это на массивы более высокой размерности, поскольку положение «:» в срезе также необходимо перебирать. В более многомерном аналоге

Код: Выделить всё

slices = [[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
мы можем получить

Код: Выделить всё

[x[i,j,:] for (i,j) in slices]
но тогда я не уверен, как продолжить перебор перестановок [i,j,:].

Подробнее здесь: https://stackoverflow.com/questions/792 ... umpy-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»