Матрица NxN в python с неповторяющимися целыми числами (в диапазоне [0: N-1]) как в строках, так И в столбцах

#python #matrix #multidimensional-array #2d

#python #матрица #многомерный массив #2d

Вопрос:

В python, как создать матрицу или 2D-массив из N x N, такой, чтобы: [A] Каждая строка содержала неповторяющиеся целые числа из 0: N-1 и [B] Каждый столбец содержал неповторяющиеся целые числа из 0: N-1

Пример :

  [[1 0 2]
  [2 1 0]
  [0 2 1]]
 

Комментарии:

1. Можете ли вы показать код, который у вас есть до сих пор, и где вы застряли?

2. @RolandDeschain : предоставленный вами код отлично работает для поворота строк. Спасибо. У меня есть некоторые ограничения на положение чисел, над которыми я работаю.

Ответ №1:

Итак, я немного повозился с этим вопросом, этот код, похоже, работает

 import numpy as np

N = 10

row = np.arange(N)
result = np.zeros((N, N))
for i in row:
    result[i] = np.roll(row, i)

print(result)
 

вывод:

 [[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
 [9. 0. 1. 2. 3. 4. 5. 6. 7. 8.]
 [8. 9. 0. 1. 2. 3. 4. 5. 6. 7.]
 [7. 8. 9. 0. 1. 2. 3. 4. 5. 6.]
 [6. 7. 8. 9. 0. 1. 2. 3. 4. 5.]
 [5. 6. 7. 8. 9. 0. 1. 2. 3. 4.]
 [4. 5. 6. 7. 8. 9. 0. 1. 2. 3.]
 [3. 4. 5. 6. 7. 8. 9. 0. 1. 2.]
 [2. 3. 4. 5. 6. 7. 8. 9. 0. 1.]
 [1. 2. 3. 4. 5. 6. 7. 8. 9. 0.]]
 

Спрашивайте, если у вас есть какие-либо вопросы.