Заполнить пустую матрицу значениями из индекса в другой - PullRequest
1 голос
/ 14 октября 2019

У меня вопрос о заполнении простой матрицы значениями из индекса в другой.

Например, у меня есть эта матрица:

> mat = np.zeros((0,5))

> mat
  0 0 0 0 0
  0 0 0 0 0
  0 0 0 0 0
  0 0 0 0 0
  0 0 0 0 0

Например, скажем, я хочу заполнитьциновка от строки 1 до 3 в первом столбце со значением: 1, так что это будет выглядеть так:

> mat
  0 0 0 0 0
  1 0 0 0 0
  1 0 0 0 0
  1 0 0 0 0
  0 0 0 0 0

Вот что я пробовал, но здесь 1 применяется ко всем столбцам вместо одного столбца:

mat[1:3][1]=1

В чем здесь проблема?

Ответы [ 4 ]

2 голосов
/ 14 октября 2019

Есть две проблемы:

Прежде всего, вы не создаете желаемую матрицу. np.zeros((0,5)) не будет работать. Вместо этого вы должны попробовать mat = np.zeros((5,5)).

Другая проблема - доступ к созданной матрице. Для доступа к 0-м элементам строк от 1 включительно до 3 включительно необходимо позвонить:

mat[1:4,0]=1
2 голосов
/ 14 октября 2019

mat = np.zeros((0,5)) не создает матрицу, которая вам нужна. Правильный путь это

mat = np.zeros((5,5), dtype=int)

1 голос
/ 14 октября 2019

Попробуй так:

mat[1:4, 0] = 1
0 голосов
/ 14 октября 2019

mat[1:3][1] - это список. Вы не хотите заменять его целочисленным значением.

Использовать

for list_ in mat[1:4]:
    list_[0]=1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...