Я новичок в Python. Я пытаюсь реализовать алгоритм Штрассена. В моей реализации размер матрицы всегда будет степенью двойки. Итак, как мне разделить матрицу на 4 квадранта одинакового размера? Спасибо
как разбить матрицу на 4 квадранта в python с помощью numpy
Ответы (1)
>>> xs = np.arange(16)
>>> xs
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
>>> xs.reshape(4, 4)
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>> xs = xs.reshape(4, 4)
>>> a, b, c, d = xs[:2, :2], xs[2:, :2], xs[:2, 2:], xs[2:, 2:]
>>> print(a, b, c, d, sep='\n')
[[0 1]
[4 5]]
[[ 8 9]
[12 13]]
[[2 3]
[6 7]]
[[10 11]
[14 15]]
замените 2 на len(xs) // 2
.
person
behzad.nouri
schedule
15.09.2014
Спасибо за Ваш ответ. Не могли бы вы объяснить: обозначение при вычислении a, b, c, d? Должен ли он быть до или после значения (2 в приведенном выше примере)?
- person so908; 16.09.2014