Как «оцифровать» вложенный список Python при создании - PullRequest
0 голосов
/ 20 сентября 2019

моя среда выполнения убивает меня, потому что я не понимаю, как воспользоваться массивами.Мой код сейчас может выглядеть бессмысленным, но он делает именно то, что я хочу (массивы k-на-80000, но 2000 из них), за исключением того, что это занимает слишком много времени.На самом деле это просто массивный вложенный вложенный список, состоящий из случайных нормальных единичных векторов.В настоящее время, после перечисленного кода (но внутри цикла for, только на первом уровне отступа) я работаю с таблицами в l_tables и конвертирую с помощью numpy.array (listname), но должен быть способ инициализировать эти вещи непосредственно какnumpy массивы?

l и k - это небольшие целые числа, для этой цели пусть l = k = 4

Я пробовал также много версий numpy.concatenate и numpy.arange, а такжепроверил numpy.append (M, a), тоже посмотрел примеры, но я не могу понять, как заставить его делать именно то, что я пытаюсь

for z in range(1, 2001):
    l_tables = []
    for a in range(l):
        table = []
        for i in range(k):
            row = []
            for j in range(80000):
                result = numpy.random.normal(0, 1)
                row.append(result)
            table.append(row)
        l_tables.append(table)

много кода после этого, не включая

Ответы [ 2 ]

4 голосов
/ 20 сентября 2019

Моя интерпретация вашего вопроса такова, что вам просто нужен трехмерный массив с нормальными распределенными значениями.Вы можете создать это, указав размер в обычной случайной команде:

import numpy as np

l = 4
k = 4
j = 80000
l_tables = np.random.normal(0, 1, size = [l, k, j])
0 голосов
/ 20 сентября 2019

у вас есть
2000 l_tables
l таблиц
k строк
80000 строк в каждом элементе

вы можете получить это так.но это, вероятно, займет много памяти

l=4
k=4
np.random.normal(0, 1, size=(2000,l,k,80000))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...