Нарезка массивов numpy

#arrays #numpy

#массивы #numpy

Вопрос:

 mean = [0, 0]
cov = [[1, 0], [0, 100]] 

gg = np.random.multivariate_normal(mean, cov, size = [5, 12])
 

Я получаю массив из 2 столбцов и 12 строк, я хочу взять первый столбец, который будет включать все 12 строк, и преобразовать их в столбцы. Каков подходящий метод для sclicing и как можно преобразовать результат в столбцы? Чтобы быть точным, глядя на экран (второй), нужно взять все столбцы 0 столбцов и преобразовать их обычным способом слева направо

результаты должны быть такими (первый экран)введите описание изображения здесь

введите описание изображения здесь

Ответ №1:

Проблема в том, что ваш массив gg не двухмерный, а трехмерный. Итак, вам нужен фактически первый столбец каждого сложенного 2D-массива. Вот пример:

 import numpy as np

x = np.random.randint(0, 10, (3, 4, 5))
x[:, :, 0].flatten()
 

Двоеточие в нарезке означает «все значения в этом измерении». Итак, x[:, :, 0] означает «все значения в первом измерении и все значения во втором измерении и с третьим измерением, фиксированным по индексу 0». В результате получается двумерный массив, который необходимо дополнительно сгладить.