Как создать n матриц одинаковой формы - PullRequest
0 голосов
/ 05 ноября 2019

Я делаю домашнюю работу, где мне нужно 20 матриц с формой (m, n), с именами a_0, a_1, a_2, ..., a_19. Сначала все они могут быть заполнены нулями. Как я могу сделать это, используя для? Работая над Python

, я могу создать их все самостоятельно, например:

a_0 = np.zeros((m,n))

...

a_19 = np.zeros((m,n))

но что если мне понадобится 1000 матриц?

Ответы [ 3 ]

0 голосов
/ 05 ноября 2019

Здесь списки могут пригодиться, так как вам не требуется отдельное имя для каждой из ваших переменных, просто способ доступа к ним. Для списка вы получаете доступ к элементам по индексу (номеру), в котором они упорядочены, начиная с 0.

например. Вы можете написать:

a = []
for i in range(1000):
    a.append(np.zeros((m,n))

Затем вы можете получить к ним доступ позже, используя их индекс в списке, например, a[0] для первой матрицы и a[241] для номера матрицы 242.

В качестве альтернативы вы можете просто создать массив с еще большей размерностью:

a = np.zeros((1000,m,n))

Таким же образом, a[0] будет тогда первой матрицей.

0 голосов
/ 05 ноября 2019
import numpy as np
N = 10
m, n = 10, 20
for i in range(N):
     exec( "a_%d = np.zeros((%d,%d))" % (i,m,n) )
0 голосов
/ 05 ноября 2019

В настоящее время вы используете numpy массивы (numpy также имеет матричный тип), поэтому я предполагаю, что вам нужны массивы.

Чтобы создать произвольное количество массивов, которые можно получить по имени, я бы использовал словарь Python.

import numpy as np

N = 1000
m = 10
n = 10

arrays = {'a_%d' % i: np.zeros((m, n)) for i in range(N)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...