Это должно исправить:
import numpy as np
A = np.array([
[2, 1, 4, 1],
[3, 4, -1, -1],
[1, -4, 1, 5],
[2, -2, 1, 3]
], dtype=np.float)
v = np.array([-4, 3, 9, 7], float)
N = len(v)
for m in range(N):
div = A[m, m]
A[m, :] /= div
v[m] /= div
Или, если вы действительно хотите целочисленное деление:
for m in range(N):
div = A[m, m]
A[m, :] = A[m, :] / div
v[m] /= div
Проблема в том, что в Python 3, /
делает истинное деление, поэтому он преобразует результаты в число с плавающей точкой, и когда вы делаете A[m, :] /= div
, вы пытаетесь присвоить результат с плавающей точкой A
, который имеет тип integer. Вы можете найти более подробную информацию по этому вопросу, здесь
В качестве примечания, как правило, лучше не использовать:
from numpy import *